2013-02-21 119 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}")

这三个简单的步骤可以帮助我处理我的应用程序。