设置计算单个 #HotIf 表达式可以使用的最大时间.
#HotIfTimeout Timeout
类型: 整数
全局有效的超时值, 单位为毫秒(ms).
设置超时时间是为了防止表达式计算时间过长从而延迟了键盘输入. 如果超过了设定的超时值, 表达式会继续计算, 但键盘钩子将假定表达式结果为假而继续执行.
如果脚本中未使用此指令, 那么程序会默认设置为 1000.
注意系统使用它自己的超时时间, 系统超时值由以下注册表项中的 DWORD 类型值 LowLevelHooksTimeout 定义:
HKEY_CURRENT_USER\Control Panel\Desktop
如果超过了系统的超时时间, 那么系统可能会停止调用脚本的键盘钩子, 从而阻止钩子热键工作, 直到键盘钩子重新注册或脚本重新加载. 钩子 通常 可以通过挂起或取消挂起所有热键来重新注册.
微软的文档中关于超时的细节是不清楚的, 但是研究表明 Windows 7 和更高版本的情况是这样的: 如果没有定义 LowLevelHooksTimeout, 默认的超时时间是 300 ms. 钩子最多可以超时 10 次, 但如果超时第 11 次, 则会被自动移除.
如果一个给定的热键具有多个 #HotIf 变体, 超时可能会独立地应用到每个变体, 从而更有可能导致系统超时被超过. 这种情况可能会在以后的版本中进行修改.
和其他指令一样, #HotIfTimeout 不能有条件地执行.