Pause


暂停脚本的 current thread(当前线程) 。

Pause [, On|Off|Toggle, OperateOnUnderlyingThread?]

参数

On|Off|Toggle

如果留空或省略,它默认为 Toggle 。否则,指定为下列一个单词:

Toggle: 暂停 current thread 除非它下面的线程已经暂停,这种情况下将反暂停下面的线程。

On: 暂停当前线程。

Off: 如果当前线程下面的线程已经暂停,当它恢复时将成为一种反暂停状态。反之,命令无效。

OperateOnUnderlyingThread?

此参数被 "Pause Off" 忽略。对上面参数的其他两种而言,它也被忽略除非暂停已经被开启(包括凭借 Toggle 开启的)。

指定下面的一个数字:

0 (或者省略): 命令暂停当前线程;也就是,正在运行暂定命令的线程。

1: 命令标记当前线程下面的线程为暂定,以便当它恢复时,完成它运行的命令(如果有的话)并且之后进入一个暂停状态。如果当前线程下面没有线程,脚本自己会暂停,这将阻止 timers 运行(当脚本没有线程时,这个效果和使用了菜单项 "Pause Script" 一样)。

注意

Suspend 不同 -- 它禁用了 hotkeys 和 hotstrings -- pause 将冻结 current thread 。作为一个副作用,任何当前线程下面被中断的线程也将潜伏着。

在任何线程被暂停时,timers 也不会运行。相比之下,明确地启动的线程例如 hotkeys 和 menu items 仍能被运行;但当它们的 threads 结束时,下面的线程仍将被暂停。换言之,每个独立于其他的线程能被暂停。

当脚本的 current thread 处于一个暂停状态时,托盘图标的颜色从绿色转为红色。这个颜色的改变能够通过冻结图标来避免,其通过为 Menu 命令的最后一个参数指定 1 来获得。例如:
Menu, Tray, Icon, C:\My Icon.ico, , 1

要禁用 timers 而不暂停脚本,使用 "Thread, NoTimers" 。

Pause 命令在功能上和内置菜单项 "Pause Script" 相似。

当一个脚本显示任何种类的 menu (tray menu, menu bar, GUI context menu 等等) 时,它总会停住(虽然不是正式地暂停)。

相关命令

Suspend, Menu, ExitApp, Threads, SetTimer

示例

Pause::Pause  ; 给 "pause" 键指定暂停切换功能...
#p::Pause  ; ... 或为 Win+p 或者其他一些热键指定此功能。
翻译:天堂之门 menk33@163.com 2008年8月12日