2
我想讓CTRL + Shift + X在AutoIT中關閉一個函數,函數會關閉,但在結束時CTRL和SHIFT鍵會卡住。我嘗試過插入{CTRL向上}和{向上移動},但它沒有效果。AutoIT - 組合鍵執行後卡住了嗎?
這是怎麼回事?
這裏是整個AutoIt的測試腳本我的工作 -
$dll = DllOpen("C:\Windows\System32\user32.dll")
Global Const $keys[8] = [0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x5b, 0x5c]
;0xa0 LSHIFT
;0xa1 RSHIFT
;0xa2 LCTRL
;0xa3 RCTRL
;0xa4 LALT
;0xa5 RALT
;0x5b LWIN
;0x5c RWIN
HotKeySet("{PAUSE}", "stop")
Hotkeyset("^X", test)
opt("SendKeyDelay", 0)
opt("SendKeyDownDelay", 0)
While True
Sleep(500)
WEnd
Func test()
Send("The control and shift keys are going to be stuck down at the end of this.")
Send("{ENTER}")
Send("{ENTER}")
Send("PlaceHolder,")
Send("{ENTER}")
Send("PlaceHolder")
Send("{TAB}")
Send("{HOME}")
Send("{LCTRL up}")
Send("{RCTRL up}")
Send("{LSHIFT up}")
Send("{RSHIFT up}")
Call("UnstickKeys")
EndFunc
Func UnstickKeys()
For $vkvalue in $keys
DllCall($dll,"int","keybd_event","int",$vkvalue,"int",0,"long",2,"long",0) ;Release each key
Next
EndFunc
Func stop()
Exit
EndFunc ;==>stop the script
不知道AutoIt的,但據我所知它就像VBA \ VB6,這意味着 雖然真 睡眠(200) 蜿蜒 是你潛在的問題。無盡的循環從來都不是好事。特別是那些持有線程的。 – Stavm
@Stavm受控制的無限循環是偉大的事情......如何保持我的腳本活着? 我一直使用AutoIT的無限循環來保持腳本運行,否則它會運行一次。當我點擊暫停/暫停鍵時,這個無限循環停止。 –