2013-02-21 108 views
-1

試圖使用ControlSend但程序依然不情願。現在我發現了主句柄,但我仍然不知道如何正確書寫它。有助於得到讚賞。窗口的主句柄

; Process: System.Diagnostics.Process (javaw) 
; Process ID: 4752 
; Handle Count: 430 
; Responding: Yes 
; Title: ?ok???O? 
;            <= Looks stange but this is the title. 
; ? 
; Main Handle: 1115426 


$mainHanlde = "" 

While 1 
    ControlClick("", "", $mainHanlde,"{Down}") 
    Sleep(900) 
    ControlClick("", "", $mainHanlde,"{Down}") 
    Sleep(900) 
    ControlClick("", "", $mainHanlde,"{Down}") 
    Sleep(900) 
    ControlClick("", "", $mainHanlde,"a") 
    Sleep(Random(750, 2000, 1)) 
    ControlClick("", "", $mainHanlde,"a") 
    Sleep(Random(750, 2000, 1)) 
    ControlClick("", "", $mainHanlde,"a") 
    Sleep(Random(750, 2000, 1)) 
    ControlClick("", "", $mainHanlde,"a") 
    Sleep(3000) 
WEnd 

回答

0

您可以嘗試使用標題和文本,並將ID留空。這應該工作。

1

首先你需要手柄。睡眠(999)後點擊應用程序後,您可以通過$handle = WinGetHandle("[ACTIVE]")獲得。請注意,每次程序運行都可能會改變句柄。

然後您嘗試使用WinFlash($handle)進行確認。或者將WinGetTitle(...)的結果寫入控制檯。

最後你用它與控制功能.... ControlSend($handle, Default, "", "{Down}")

這三個簡單的步驟可以幫助我處理我的應用程序。