2015-08-24 140 views
-1

我想使用空格鍵在窗口中點擊一個特定的按鈕(不需要關注程序?),就像遊戲中的「開始」按鈕一樣。在Autoit中分配一個熱鍵

我試圖使用ControlClick函數,但它沒有做任何事情的方式。我認爲我做錯了什麼。

HotKeySet("{space}", "MyFunction") 

Func MyFunction() 
    ControlClick ("title", "text", controlID [, button = "left" [, clicks = 1 [, x [, y]]]]) 
EndFunc 

是這樣的嗎?

+0

是的,你需要一個帶睡眠命令的循環,就是這樣。 – Xenobiologist

+0

當然,你能幫我做到嗎? –

+0

問題在哪裏?嘗試使用Autoit Window Info獲取標題,文本等參數。如果不可用,您可以跳過controlID。 – Xenobiologist

回答

0

你這樣做很好。您缺少ControlClick函數的標題和controlID。第一個和第三個參數應該設置爲窗口的標題和控件的控件ID。 爲了讓那些使用自動安裝的AutoIt工具。 正確設置,代碼應該可以工作。

0

你可以像這樣使用它。

首先啓動AutoIt info程序以獲得所需的座標(您想要點擊的地方),使用查找工具獲取鼠標的座標並在腳本中進行編輯。

所以,當你運行你的腳本它將不會做任何事情,直到你按空格鍵,然後它將運行函數MyFunction 1次。

因此,它將鼠標移動到指定的位置,暫停半秒,然後左鍵單擊想要的位置$ x和$ y 1次,然後停止直到您再次按空格,然後執行相同的操作。

我添加了退出功能,所以你可以通過按ESC鍵關閉它。

HotKeySet("{SPACE}", "MyFunction") 
HotKeySet("{ESC}", "CloseScript") 

Global $x = 519 ; x is first value of mouse position 
Global $y = 900 ; y is second value of mouse position 

While 1 
    sleep(10) 
Wend 

Func MyFunction() 
MouseMove($x, $y, 2)    ; moves the mouse pointer do mouse position with speed 2 
Sleep(500)      ; wait 500 ms half of second (delay) 
MouseClick("left", $x, $y, 1, 2) ; now click left mouse key on mouse position, 1 click with speed 2 
EndFunc 

Func CloseScript() 
    Exit 
EndFunc