Windows GUI自动化在最小化的窗口上

4
作为免责声明,我完全不熟悉Win32开发。我想知道是否有一种方法可以自动控制输入到一个GUI应用程序,即使该应用程序被最小化了。大多数自动化工具都会使用窗口的坐标偏移量(tlx,tly)。我不需要测试框架,我只是希望我的应用程序能在最小化的(不同的-闭源)应用程序上执行某些操作。说得越多,似乎就越不可能实现。欢迎提供任何意见,以便实现此目标。
3个回答

4

好的,让您更加了解默认最小化行为的最简单方法是尝试一些简单的东西,例如计算器。只需启动它并使用Microsoft Spy++查看代表计算器窗口中某个按钮的窗口的属性。

在我的情况下,我看到:

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

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

需要记住以下几点:

  • 应用程序可能会自定义其最小化行为,例如销毁窗口-切换到托盘。
  • 即使您成功发送所需的控件消息,应用程序的逻辑也可能是障碍-例如,它可能依赖于IsWindowVisible的结果,它可能假定窗口矩形坐标始终为正等等。

0
你可能可以使用PostMessageSendMessage来实现这个,我知道这是可能的,因为我见过游戏机器人做这种事情...

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接