作爲一項免責聲明,我對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. 窗口最小化和最大化
- 5. 禁用窗口最大化/最小化
- 6. Qt QDockWidget(浮動)最小化時,我的主窗口最小化
- 7. Applescript「無法實現窗口小型化」
- 8. 獲取最大化最小化窗口的窗口位置
- 9. JButton最小化窗口(JFrame)
- 10. 最小化Outlook窗口
- 11. 如何最小化窗口?
- 12. 最小化Tk窗口
- 13. Wpf最小化窗口?
- 14. Tkinter:最大化matplotlib GUI窗口
- 15. Chrome打包應用程序窗口,當我最小化時自動調整大小 - 然後最大化窗口
- 16. JScrollPane窗口縮小縮小最小化
- 17. 使用Netbeans自動最大化窗口
- 18. 自動最大化瀏覽器窗口
- 19. 在javafx2中最小化窗口
- 20. 窗口(彈出)在javascript中最小化
- 21. 實現自動化
- 22. Ext-GWT可以使窗口最小化事件動畫化嗎?
- 23. 如何讓子窗口最小化和最大化與主窗口
- 24. 當窗口最大化時獲得非最大化的窗口位置/大小
- 25. 如何使用最小化/最大化窗口控件顯示Qt.Tool窗口?
- 26. QT在窗口中最大化窗口小部件
- 27. Windows GUI自動化
- 28. JavaScript setInterval()和最小化窗口
- 29. HOpenGL - OpenGL窗口保持最小化
- 30. Node-Webkit:如何最小化窗口?