# Persistent

防止脚本在最后一个线程完成后自动退出, 允许它在空闲状态下运行.

    Persistent Persist

## 参数

Persist

  类型: 布尔值

  如果是 true 或省略, 在所有线程退出后, 即使没有满足保持脚本运行的其他条件, 也会保持脚本的运行.

  如果是 false, 就会恢复默认行为.

## 返回值

类型: 整数(布尔值)

这个函数返回全局设置的前一个值; 0(false, 默认值) 或 1(true).

## 备注

如果脚本是 持续运行的, 它将在启动完成和所有其他线程退出后继续运行. 通常没有必要调用这个函数, 因为在用户希望脚本持续运行的大多数常见情况下脚本都是自动持续运行的, 比如响应热键, 执行计时器或者显示 GUI.

在某些情况下可能需要此函数(如果它打算在没有运行的线程或热键, 计时器, 等时保持运行) 包括:

- 使用 OnMessage 或 CallbackCreate 和 DllCall 来响应事件的脚本, 因为这些函数不会使脚本持续运行.
- 通过选择一个自定义托盘菜单项来执行的脚本.
- 创建或检索 COM 对象并使用 ComObjConnect 来响应对象的事件的脚本.

如果将此函数添加到现有脚本中, 则可能需要将部分或全部出现的 Exit 更改为 ExitApp. 这是因为 Exit 不会终止持续运行的脚本; 它仅终止当前线程.

## 相关

Exit, ExitApp

## 示例

防止脚本自动退出.

    ; 这个脚本不会自动退出, 即使它没有任何事情要做.
    ; 但是, 你可以使用它的托盘图标在编辑器中打开脚本,
    ; 或启动 Window Spy 或帮助文件.
    Persistent

dftg