为什么在SetTimer之后命令无法运行?

时间:2019-04-14 07:09:44

标签: timer autohotkey

此代码显示消息框:

Msgbox, Hello

SetTimer, CheckTime, 1000 ; updates every 1 second
CheckTime:
Return

但这不是:

SetTimer, CheckTime, 1000 ; updates every 1 second
CheckTime:
Return

Msgbox, Hello

那是为什么?我没有在SetTimer命令上看到什么特别的地方。

1 个答案:

答案 0 :(得分:2)

只要找到第一个Return关键字,脚本就会停止执行新行。

除非在上一行中已调用过,否则从初始执行起,第一个顶级Return之后的所有内容都将被忽略。

看看这段代码:

MsgBox, I'll run!!!

MsgBox, Me 2!!!

Gosub, PastReturn

overPastReturn()

MsgBox, Me 5!!!

Return ; This is the first Top Level Return. Code Stops Executing Here.

MsgBox, Not Me!!!

PastReturn:
    MsgBox, Me 3!!!
Return ; This Return Belongs to PastReturn Label.

MsgBox, Not Me 2!!!

overPastReturn(){
    MsgBox, Me 4!!!
}