0

请在 AutoHotkey 中执行以下脚本:

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Event  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.

#Persistent

Gosub, Mylabel
Return

MsgBox, It worked!

MyLabel:
Sleep, 1000
Return

我希望它会调用MyLabel,即等待 1 秒,然后弹出消息框。

但事实并非如此。

我在Gosub运作中缺少什么?

4

1 回答 1

1

returngosub通话后的那一行。

把它拿出来,它会停止脚本。

像这样:

(1) Gosub, Mylabel
; Return

(2) MsgBox, It worked!

(3) MyLabel:
(4) Sleep, 1000
(5) Return

基本上,在MylabelGosub后面的代码开始之后。一旦到达 a ,它就会跳回来并继续后面的行。returnGosub

这里的执行顺序是 (1), 跳转到标签 (3), 运行命令 (4), 运行返回 (5) 因为之前发出了 gosub 这跳转到 (1) 之后的行, 运行 (2) 你会看到信息。之后代码继续在 (3) 处再次传递标签,再次运行 (4),这次在 (5) 处返回完全停止脚本。

于 2013-09-27T17:19:26.823 回答