簡體   English   中英

帶有 if 語句的 autohotkey 循環

[英]autohotkey loop with if statement inside

我試圖在 ahk 的循環中獲取一個 if 語句,以便僅在計數器變量值大於或等於 X(本例中使用 10)后運行一些代碼,如果滿足條件,它會發送一些單詞到文本輸入,然后再次將計數器變量重置為 0。 所以我正在使用 IfGreaterOrEqual 但它只是繞過了它。

它不起作用,它一直在無所事事。 有人可以闡明我做錯了什么嗎?

F3::
Toggle := !Toggle
if(Toggle){
    gosub Loop1
    gosub Loop2
}
SetTimer, Loop1, % (Toggle) ? 19550 : "Off"
SetTimer, Loop2, % (Toggle) ? 306500 : "Off"
return

F4::Reload

Loop1:
vCOUNT++
SendInput word-1{Enter}
IfGreaterOrEqual, vCOUNT, 10
SendInput word-2{Enter}
SendInput word-3{Enter}
vCOUNT :=0
SendInput Counter was reset, its value is now: %vCOUNT% {Enter}
return

Loop2:
SendInput word-4{Enter}
SendInput word-5{Enter}
SendInput word-6{Enter}
SendInput word-7{Enter}
return

我不知道我是否解決了你的問題,但我認為你的問題是在 Loop1 中,條件被忽略,甚至在第一次迭代中它也會將 vCOUNT 設置回零。

所以這個問題是你可以看到它以某種方式沒有忽略“IfGreaterOrEqual”,因為“SendInput word-2 {Enter}”沒有被執行。 所以該語句只影響下一行,但您希望它影響整個塊。 要解決這個問題,您必須在您想要的代碼塊周圍加上括號。 在您的“Loop1”示例中(如果我的想法正確),它應該是這樣的:

 Loop1: vCOUNT++ SendInput word-1{Enter} IfGreaterOrEqual, vCOUNT, 10 { SendInput word-2{Enter} SendInput word-3{Enter} vCOUNT:=0 SendInput Counter was reset, its value is now: %vCOUNT% {Enter} } return

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM