2016-11-23 3 views
0

У меня есть скрипт, нажимая кнопку «k» в цикле. Я добавил кнопку паузы на «q». Я также хочу, чтобы «w» приостанавливал сценарий. Но я не хочу, чтобы «w» начал мой скрипт. Это возможно?Autoit pause Горячая клавиша запуска/остановки

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

Я предлагаю перестраивает ваш код & введения функции Pause(), чтобы сделать вещи проще:

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», «Pause»), то кнопка w не будет работать как обычная. Когда я пишу нормальный текст, кнопка w не работает. –

+0

см. Редактирование. используйте HotKeySet («w»), чтобы остановить захват w – Richard

Смежные вопросы