# #UseHook

强制使用钩子实现全部或部分键盘热键.

    #UseHook Setting

## 参数

Setting

  指定以下文字值之一(如果省略, 则默认为 True):

  True 或 1: 将用键盘钩子来实现从这里到下一个 `#UseHook false`(如果有的话) 之间的所有键盘热键.

  False 或 0: 用默认方法实现热键(不能使用 RegisterHotkey() 时, 才使用键盘钩子).

## 备注

一般情况下, 只要有可能都会用 windows API 函数 RegisterHotkey() 来实现键盘热键. 不过在一些情况下, 如果使用键盘钩子可能响应性更好.

切换此指令为 ON 相当于在每个受影响的热键定义中使用 $ 前缀.

与所有 # 指令一样 -- 只在脚本启动时处理一次 -- `#UseHook` 不应该像函数那样放在脚本中(即它不需要被包含在子程序中). 相反, 应该把它放在您希望影响的首个热键之前.

默认情况下, 使用键盘钩子的热键不会被 Send 函数的方法触发. 同样地, 鼠标热键也不会被像 Click 这样的内置函数触发, 因为所有的鼠标热键都使用鼠标钩子. 一种解决方法是命名热键的函数, 然后直接调用. 例如: `Gosub #LButton`.

#InputLevel 和 SendLevel 对 Send 函数是否触发热键和热字串提供了额外的控制功能.

如果脚本中未使用此指令, 那么它会表现的就像此设置为 OFF 那样.

和其他指令一样, #UseHook 不能有条件地执行.

## 相关

InstallKeybdHook, InstallMouseHook, ListHotkeys, #InputLevel

## 示例

使前两个热键使用键盘钩子.

    #UseHook  ; 强制从这里往后的热键使用键盘钩子.
    #x::MsgBox "This hotkey will be implemented with the hook."
    #y::MsgBox "And this one too."
    #UseHook False
    #z::MsgBox "But not this one."

dftg