2017-03-12 51 views
0

所以我讓我的腳本AHK阻止輸入

toggl:=false 
 
while(1){ 
 
\t if(toggl){ 
 
\t \t Send,E 
 
\t } 
 
\t Sleep, 150 
 
} 
 
!r:: 
 
toggl:=!toggl 
 
return 
 
!y::ExitApp,101

問題是循環運行時,我無法取消它,因爲它阻止!Y,所以我不得不重新啓動電腦。所以,任何幫助,這將是很好的。

+0

提示:在循環中使用[GetKeyState](https://autohotkey.com/docs/commands/GetKeyState.htm)。 – wOxxOm

+0

你可以給我確切的代碼,對不起,我真的很新的AHK – mobinblack

+0

提示是一個提示。您可以使用它來查找現有的答案。 – wOxxOm

回答

0

設置#MaxThreads 2讓每個熱鍵運行兩次,OR:

使用SetTimer,讓熱鍵結束,繼續本着「僞線程」你的循環。

toggle := 0 

F12:: 
    toggle := !toggle 
    if (toggle){ 
     SetTimer, DoLoop, -100 
    } 
    return 

DoLoop: 
    Loop { 
     if (!toggle){ 
      break 
     } 
     ; [Do your stuff here] 
    } 
    return 
+0

循環內部似乎是不必要的,與問題 – Blauhirn

+0

'SetTimer,DoLoop,-100'不是一個循環。負值意味着它只運行一次。 它只是啓動一個「線程」,它會執行您的實際循環,允許熱鍵完成,因此它可以在循環處於活動狀態時再次運行,從而允許您使用啓動它的相同熱鍵來終止循環。 –

+0

對不起,你是對的! – Blauhirn