2016-11-23 174 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