2016-11-23 196 views
0

我有一個腳本在循環中按「k」按鈕。我在「q」上添加了暫停按鈕。 我也希望「w」暫停腳本。但我不想「開始」我的劇本。那可能嗎?自動暫停開始/停止熱鍵

Global $UnPaused 
HotKeySet("q", "TogglePause") 
HotKeySet("{PAUSE}", "TogglePause") 
HotKeySet("{.}", "Terminate") 

While 1 
Sleep(100) 
WEnd 

Func TogglePause() 
$UnPaused = NOT $UnPaused 
While $UnPaused 
    Send("k") 
WEnd 
EndFunc 

Func Terminate() 
Exit 0 
EndFunc 

回答

0

我建議重新安排你的代碼&引入暫停()函數,使事情變得更加容易:

Global $UnPaused=false; 
HotKeySet("q", "Pause") 
HotKeySet("{PAUSE}", "TogglePause") 
HotKeySet("{.}", "Terminate") 

While 1 
    if $UnPaused Then 
     Send("k"); 
    Else 
     Sleep(100) 
    EndIf 
WEnd 

Func Pause() 
$UnPaused = False 
EndFunc 

Func TogglePause() 
$UnPaused = NOT $UnPaused 
EndFunc 

Func Terminate() 
Exit 0 
EndFunc 

如果你不想捕捉熱鍵,同時停了下來,這裏的這樣一個例子:

Global $UnPaused=false; 
HotKeySet("q", "Pause") 
HotKeySet("{PAUSE}", "TogglePause") 
HotKeySet("{.}", "Terminate") 
HotKeySet("w", "Pause") 
While 1 
    if $UnPaused Then 
     HotKeySet("w", "Pause") 
     Send("k"); 
    Else 
     HotKeySet("w") 
     Sleep(100) 
    EndIf 
WEnd 

Func Pause() 
$UnPaused = False 
EndFunc 

Func TogglePause() 
$UnPaused = NOT $UnPaused 
EndFunc 

Func Terminate() 
Exit 0 
EndFunc 
+0

這是有效的,唯一的問題是,如果我使用「HotKeySet(」w「,」暫停「)」w按鈕將不能正常工作。當我正常寫入時,w鍵不起作用。 –

+0

請參閱編輯。使用HotKeySet(「w」)停止捕獲w – Richard