<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1632085368384154" crossorigin="anonymous"></script><script src="https://autohotkey.top/gtag.js"></script></head> <body> <h1>Reload</h1> <p>使用新的脚本实例替换当前正在运行的.</p> <pre class="Syntax"><span class="func">Reload</span></pre> <p>此函数可用于需要频繁改变的脚本. 通过给此函数设置热键, 您可以在编辑器中保存修改后轻松地重启脚本.</p> <p>默认情况下, 脚本也可以通过它的<a href="../Program.htm#tray-icon">托盘图标</a>或<a href="../Program.htm#main-window">主窗口</a>来重新加载.</p> <p>传递给原始脚本的<a href="../Scripts.htm#cmd">命令行参数</a>不会被传递给新的实例. 要传递这些参数, 请不要使用 Reload. 相反地, 把 <a href="Run.htm">Run</a> 配合 <a href="../Variables.htm#AhkPath">A_AhkPath</a> 和 <a href="../Variables.htm#ScriptFullPath">A_ScriptFullPath</a> 使用(如果会以编译后的形式运行脚本, 还包括 <a href="../Variables.htm#IsCompiled">A_IsCompiled</a>). 此外, 使用 <code>/restart</code> 作为首个参数(即在可执行文件名后), 这样告诉程序要使用和 Reload 相同的动作. 另请参阅: <a href="../Scripts.htm#cmd">命令行开关和语法</a>.</p> <p>当脚本重启时, 会从它原来的工作目录启动(当它首次启动时生效的那个). 换句话说, <a href="SetWorkingDir.htm">SetWorkingDir</a> 不会改变新实例的初始工作目录.</p> <p>如果脚本无法重载(可能由于语法错误), 那么原来的实例会继续运行. 因此, reload 函数后应跟着在重载失败时您想执行的动作(例如使用 <a href="Return.htm">return</a> 来退出当前子程序). 要在原来的实例中检测到失败, 请参照此例:</p> <pre>Reload Sleep 1000 <em>; 如果成功, 则 reload 会在 Sleep 期间关闭这个实例, 所以下面这行语句永远不会执行.</em> Result := MsgBox("The script could not be reloaded. Would you like to open it for editing?",, 4) if Result = "Yes" Edit return</pre> <p>AutoHotkey 依赖于脚本<a href="../Program.htm#main-window">主窗口</a>的标题来识别脚本的其他正在运行的实例.</p> <h2 id="Related">相关</h2> <p><a href="Edit.htm">Edit</a></p> <h2 id="Examples">示例</h2> <div class="ex" id="ExBasic"> <p><a class="ex_number" href="#ExHotkey"></a> 按下热键重启脚本.</p> <pre>^!r::Reload <em>; Ctrl+Alt+R</em></pre> </div> <a href="https://dftg.net">dftg</a></body> </html>