2010-10-28 82 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要做到這一點,我知道它可能的,因爲我已經看到了遊戲機器人是做這樣的事情......