Reload

使用新的脚本实例替换当前正在运行的.

Reload

此函数可用于需要频繁改变的脚本. 通过给此函数设置热键, 您可以在编辑器中保存修改后轻松地重启脚本.

默认情况下, 脚本也可以通过它的托盘图标主窗口来重新加载.

传递给原始脚本的命令行参数不会被传递给新的实例. 要传递这些参数, 请不要使用 Reload. 相反地, 把 Run 配合 A_AhkPathA_ScriptFullPath 使用(如果会以编译后的形式运行脚本, 还包括 A_IsCompiled). 此外, 使用 /restart 作为首个参数(即在可执行文件名后), 这样告诉程序要使用和 Reload 相同的动作. 另请参阅: 命令行开关和语法.

当脚本重启时, 会从它原来的工作目录启动(当它首次启动时生效的那个). 换句话说, SetWorkingDir 不会改变新实例的初始工作目录.

如果脚本无法重载(可能由于语法错误), 那么原来的实例会继续运行. 因此, reload 函数后应跟着在重载失败时您想执行的动作(例如使用 return 来退出当前子程序). 要在原来的实例中检测到失败, 请参照此例:

Reload
Sleep 1000 ; 如果成功, 则 reload 会在 Sleep 期间关闭这个实例, 所以下面这行语句永远不会执行.
Result := MsgBox("The script could not be reloaded. Would you like to open it for editing?",, 4)
if Result = "Yes"
    Edit
return

AutoHotkey 依赖于脚本主窗口的标题来识别脚本的其他正在运行的实例.

Edit

示例

按下热键重启脚本.

^!r::Reload  ; Ctrl+Alt+R
unixetc