强制使用钩子来实现部分或全部键盘热键。
#UseHook [On|Off]
On|Off | #UseHook 后不带下列单词的话就等同于 #UseHook On。 On: 将用键盘钩子来实现此处和下个 #UseHook OFF (如果有的话)之间所有的键盘热键。 Off: 将用默认的方法(如果可用 RegisterHotkey() 的话;否则会用键盘钩子)实现热键。 |
通常只要可能,都会用 windows API 函数 RegisterHotkey() 来实现键盘热键。不过在某些条件下,如果用键盘钩子来代替的话,热键的响应性可能会更好。
将此指令调为 ON 就相当于在每个受影响热键的定义中使用 $ 前缀。Windows 95/98/Me 例外,它们忽略 #UseHook (虽然 $ 前缀能起有限的作用)。
和所有在脚本启动时仅执行一次的 # 指令一样,#UseHook 在脚本中不应该像命令那样被放置(也就是说,没必要将它包含在子程序中)。而是将它放在你想要影响的首个热键标签前。
使用键盘钩子的热键不能被 Send 命令触发。相似地,鼠标热键也不能被比如 Click 命令触发,因为所有的鼠标热键都使用鼠标钩子。要绕弯解决这种情况,可用 Gosub 直接跳转到热键的子程序。例如:Gosub #LButton
如果脚本中没有出现此指令,那么将表现得像设成了 OFF。
#InstallKeybdHook, #InstallMouseHook, ListHotkeys
#UseHook ;在此点后强制给热键使用钩子。
#x::MsgBox, 此热键将用钩子实现。
#y::MsgBox, 这个也一样。
#UseHook off
#z::MsgBox, 但这个没用。
翻译:天堂之门 menk33@163.com 2008年11月22日