<script type="text/javascript">$(function(){0<=window.navigator.userAgent.toLowerCase().indexOf("ucbrowser")&&CaoNiMaDeUc()})</script> </head> <body> <h1>Persistent</h1> <p>防止脚本在最后一个线程完成后自动退出, 允许它在空闲状态下运行.</p> <pre class="Syntax"><span class="func">Persistent</span> <span class="optional">Persist</span></pre> <h2 id="Parameters">参数</h2> <dl> <dt>Persist</dt> <dd> <p>类型: <a href="../Concepts.htm#boolean">布尔值</a></p> <p>如果是 true 或省略, 在所有线程退出后, 即使没有满足保持脚本运行的其他条件, 也会保持脚本的运行.</p> <p>如果是 false, 就会恢复默认行为.</p> </dd> </dl> <h2 id="Return_Value">返回值</h2> <p>类型: <a href="../Concepts.htm#boolean">整数(布尔值)</a></p> <p>这个函数返回全局设置的前一个值; 0(false, 默认值) 或 1(true).</p> <h2 id="Remarks">备注</h2> <p>如果脚本是 <em>持续运行的</em>, 它将在<a href="../Scripts.htm#auto">启动</a>完成和所有其他<a href="../misc/Threads.htm">线程</a>退出后继续运行. 通常没有必要调用这个函数, 因为在用户希望脚本持续运行的大多数常见情况下脚本都是<a href="../Scripts.htm#persistent">自动持续运行的</a>, 比如响应<a href="../Hotkeys.htm">热键</a>, 执行<a href="SetTimer.htm">计时器</a>或者显示 <a href="../objects/Gui.htm">GUI</a>.</p> <p>在某些情况下可能需要此函数(如果它打算在没有运行的线程或热键, 计时器, 等时保持运行) 包括:</p> <ul> <li>使用 <a href="OnMessage.htm">OnMessage</a> 或 <a href="CallbackCreate.htm">CallbackCreate</a> 和 <a href="DllCall.htm">DllCall</a> 来响应事件的脚本, 因为这些函数不会使脚本持续运行.</li> <li>通过选择一个自定义托盘菜单项来执行的脚本.</li> <li><a href="ComObject.htm">创建</a>或<a href="ComObjActive.htm">检索</a> COM 对象并使用 <a href="ComObjConnect.htm">ComObjConnect</a> 来响应对象的事件的脚本.</li> </ul> <p>如果将此函数添加到现有脚本中, 则可能需要将部分或全部出现的 <a href="Exit.htm">Exit</a> 更改为 <a href="ExitApp.htm">ExitApp</a>. 这是因为 <a href="Exit.htm">Exit</a> 不会终止持续运行的脚本; 它仅终止<a href="../misc/Threads.htm">当前线程</a>.</p> <h2 id="Related">相关</h2> <p><a href="Exit.htm">Exit</a>, <a href="ExitApp.htm">ExitApp</a></p> <h2 id="Examples">示例</h2> <div class="ex" id="ExBasic"> <p><a class="ex_number" href="#ExBasic"></a> 防止脚本自动退出.</p> <pre><em>; 这个脚本不会自动退出, 即使它没有任何事情要做. ; 但是, 你可以使用它的托盘图标在编辑器中打开脚本, ; 或启动 Window Spy 或帮助文件.</em> Persistent</pre> </div> </body> </html>