2010-10-28 102 views
3

作为一项免责声明,我对Win32开发并不熟悉。我想知道是否有任何方法可以自动化GUI应用程序的控制输入,如果该应用程序被最小化。我所见过的大多数自动化工具都使用窗口中的坐标偏移量(tlx,tly)。我不需要测试框架,我只是希望自己的应用程序对最小化(不同 - 封闭源)的应用程序进行一些操作。我谈论它,似乎越少越好。任何输入赞赏如何可能完成。在最小化窗口下实现GUI自动化

回答

3

好,最简单的为你的方式熟悉默认最小化行为就是玩简单的东西,例如Calculator。只需启动它并使用Microsoft Spy++即可查看代表计算器窗口内某个按钮的窗口的属性。

在我的情况我看到:

  • 在正常状态:矩形(1096,222) - (1130,249),34x27
  • 在最小化状态:矩形(-31911,-31839) - (-31877,-31812),34x27

因此默认情况下,最小化通过将窗口位置移动很远来改变窗口位置。如果你能够保留HWND,那么你仍然可以发送你需要的任何窗口消息。

事情要记住:

  • 应用可以定制上最小化,例如他们的行为摧毁窗户 - 切换到托盘。
  • 即使您成功发送必要的消息到您需要的控件 - 应用程序的逻辑可能是一个障碍 - 例如,它可能取决于IsWindowVisible的结果,它可能会假定窗口矩形坐标总是正的,等等。
0

您也许能PostMessageSendMessage要做到这一点,我知道它可能的,因为我已经看到了游戏机器人是做这样的事情......