一、作用
禁用或启用所有的或选择的热键和热字串。
二、格式
Suspend , [模式]
三、模式
On: 挂起所有的热键和热字串, 备注部分说明的除外。
Off: 重新启用上面禁用的热键和热字串。
Toggle(默认): 改变为与原来相反的状态(On 或 Off)。
Permit: 仅仅把当前的子程序标记为免于挂起。
[v1.1.30+]: 值 1(或 true
), 0(或 false
) 和 -1 可以分别用来代替 On, Off 和 Toggle。
四、注意事项
默认情况下, 脚本也可以通过它的托盘图标或主窗口来挂起。
1.任何首行为 Suspend(不包括 Suspend On
) 的热键/热字串会被免于挂起. 换句话说, 即使在挂起状态为 ON 时热键仍会保持可用. 这样就允许使用这样的热键关闭挂起状态。
网友问:为什么下面代码不能取消挂起状态?
ScrollLock::
SetScrollLockState, % GetKeyState("ScrollLock","T") ? "Off" : "On"
Suspend Toggle
return
答案,“任何首行为 Suspend(不包括 Suspend On
) 的热键/热字串会被免于挂起”,这句话白话就是,如果想不被挂起,Suspend这行命令紧挨着热键那行写。正确写法:
ScrollLock::
Suspend Toggle
SetScrollLockState, % GetKeyState("ScrollLock","T") ? "Off" : "On"
return
2.如果由该命令进行更改, 则将安装或删除键盘和/或鼠标钩子。
3.要根据窗口的类型自动禁用选择的热键或热字串, 请使用 #IfWinActive/Exist。
4.挂起脚本的热键不会停止脚本中已经运行的线程(如果有), 请使用 Pause 来让它停止。
5.当脚本的热键挂起时, 它的托盘图标会变为字母 S. 这可以通过冻结图标来避免, 这是使用最后一个参数为 1 的 Menu 命令实现的. 例如:
Menu, Tray, Icon, C:\My Icon.ico, , 1
6.当脚本挂起时内置变量 A_IsSuspended 值为 1, 否则为 0。
五、例子
1.按下一次热键可暂停所有热键和热字串. 再按一次可取消暂停。
^!s::Suspend ; Ctrl+Alt+S
2.发送 Suspend 命令到另一个脚本。
DetectHiddenWindows, On
WM_COMMAND := 0x0111
ID_FILE_SUSPEND := 65404
PostMessage, WM_COMMAND, ID_FILE_SUSPEND,,, C:\你的脚本.ahk ahk_class AutoHotkey
赚积分
谢谢分享,强烈支持 积分不够评论来凑