如何从通知区域删除我的应用程序的鬼图标?

时间:2014-06-06 15:33:57

标签: testcomplete

在我的脚本退出测试中的WPF应用程序之后,我经常在通知区域中找到留下的鬼应用程序图标。当我手动执行鼠标悬停时它会消失。如果此操作是自动执行的,则会抛出错误说“对象不存在“(因为TC执行悬停操作时图标消失)。 有没有更好的方法来解决这个问题?我使用TC9和jscript。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

您可以使用Windows API SendMessage函数将WM_MOUSEMOVE消息发送到通知区域对象。我从this question的答案中获取代码并将其修改为TestComplete:

// JScript
function RefreshNotificationArea()
{
  var WM_MOUSEMOVE = 0x0200;

  var explorer = Sys.Process("explorer");
  var toolbars = [
    explorer.Window("Shell_TrayWnd").Window("TrayNotifyWnd").Window("SysPager").Window("ToolbarWindow32"),
    explorer.Window("NotifyIconOverflowWindow").Window("ToolbarWindow32")  // toolbar with hidden icons
  ];

  for (var i = 0; i < toolbars.length; i++)
  {
    var toolbar = toolbars[i];
    for (var x = 0; x < toolbar.Width; x += 5)
      for (var y = 0; y < toolbar.Height; y += 5)
        Win32API.SendMessage(toolbar.Handle, WM_MOUSEMOVE, 0, (y << 16) + x);
  }
}