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