作为一项免责声明,我对Win32开发并不熟悉。我想知道是否有任何方法可以自动化GUI应用程序的控制输入,如果该应用程序被最小化。我所见过的大多数自动化工具都使用窗口中的坐标偏移量(tlx,tly)。我不需要测试框架,我只是希望自己的应用程序对最小化(不同 - 封闭源)的应用程序进行一些操作。我谈论它,似乎越少越好。任何输入赞赏如何可能完成。在最小化窗口下实现GUI自动化
3
A
回答
3
好,最简单的为你的方式熟悉默认最小化行为就是玩简单的东西,例如Calculator
。只需启动它并使用Microsoft Spy++
即可查看代表计算器窗口内某个按钮的窗口的属性。
在我的情况我看到:
- 在正常状态:矩形(1096,222) - (1130,249),34x27
- 在最小化状态:矩形(-31911,-31839) - (-31877,-31812),34x27
因此默认情况下,最小化通过将窗口位置移动很远来改变窗口位置。如果你能够保留HWND,那么你仍然可以发送你需要的任何窗口消息。
事情要记住:
- 应用可以定制上最小化,例如他们的行为摧毁窗户 - 切换到托盘。
- 即使您成功发送必要的消息到您需要的控件 - 应用程序的逻辑可能是一个障碍 - 例如,它可能取决于IsWindowVisible的结果,它可能会假定窗口矩形坐标总是正的,等等。
0
您也许能PostMessage或SendMessage要做到这一点,我知道它可能的,因为我已经看到了游戏机器人是做这样的事情......
0
有这样的事情的Python解决方案 - pywinauto。
实施例:Python - Control window with pywinauto while the window is minimized or hidden
虽然WinForms的部分支持,像无声点击(Click
方法)简单的动作可以利用相对坐标为未识别的控制来完成。
相关问题
- 1. 最小化窗口时自动重绘
- 2. 如何在最小化窗口后最大化窗口
- 3. 禁用窗口最大化/最小化
- 4. Qt QDockWidget(浮动)最小化时,我的主窗口最小化
- 5. Applescript“无法实现窗口小型化”
- 6. 获取最大化最小化窗口的窗口位置
- 7. 最小化Outlook窗口
- 8. 如何最小化窗口?
- 9. 最小化Tk窗口
- 10. JButton最小化窗口(JFrame)
- 11. 最小化弹出窗口
- 12. Tkinter:最大化matplotlib GUI窗口
- 13. Chrome打包应用程序窗口,当我最小化时自动调整大小 - 然后最大化窗口
- 14. 使用Netbeans自动最大化窗口
- 15. 窗口(弹出)在javascript中最小化
- 16. 实现自动化
- 17. Ext-GWT可以使窗口最小化事件动画化吗?
- 18. 如何使用最小化/最大化窗口控件显示Qt.Tool窗口?
- 19. 如何让子窗口最小化和最大化与主窗口
- 20. Windows GUI自动化
- 21. 从最小化恢复窗口状态
- 22. 硒Python最小化浏览器窗口
- 23. CSS最小化窗口更改外观
- 24. 最小化窗口到系统托盘
- 25. Wpf主窗口获取最小化
- 26. HOpenGL - OpenGL窗口保持最小化
- 27. 退出不会最小化窗口?
- 28. JavaScript setInterval()和最小化窗口
- 29. 无法恢复最小化窗口
- 30. 使用NoResize模式最小化窗口