# 高级热键功能

## 目录

- 常规
  - 重映射容易按到但却很少使用的按键
  - 使用任意键作为修饰符
  - 让鼠标滚轮执行 Alt-Tab
  - 使键盘成为鼠标按键
  - 让你的热键是上下文相关的
  - 定义在键入时展开的缩写
- 游戏
  - 减少手指的磨损
  - 创建鼠标热键
  - 创建 "穿透" 热键
  - 在屏幕上自动化游戏动作
  - 使用键盘钩子
- 相关主题

## 常规

### 重映射容易按到但却很少使用的按键

键盘上一些很容易按到的键却不经常使用. 我们要让这些键变得更有用. 例如, 如果您很少使用右 `Alt` 键, 那么可以让它执行常用的操作:

    RAlt::MsgBox "You pressed the right ALT key."

您甚至可以在保持右 `Alt` 键原来的功能的同时, 把它作为其他热键的 "前缀" 键来实现上述功能. 在下面的例子中, 右 `Alt` 作为前缀键, 这让它自动地像平常那样修饰其他 所有 的按键. 但如果您按下并放开右 `Alt` 期间没有按下其他键, 那么它的热键功能(上面的例子) 会立即生效:

    RAlt & j::AltTab

### 使用任意键作为修饰符

修饰符不再局限于 `Ctrl`, `Alt`, `Shift` 和 `Win`; 您可以使用 任意 两个按键或鼠标按钮组成自定义热键. 例如: 按住 Numpad0 且按下 Numpad1 来执行热键(`Numpad0 & Numpad1::`); 按住 `CapsLock`并按下另一个键或点击鼠标右键(`CapsLock & RButton::`). 此时(运行热键时), `CapsLock` 键的状态(大写或小写) 不会发生改变. 有关详情, 请参阅自定义组合键.

### 让鼠标滚轮执行 Alt-Tab

使用鼠标滚轮(或您选择的其他任意键) 完全代替 Alt-Tab. 点击滚轮来显示窗口选择菜单, 转动滚轮来浏览菜单. 当 Alt-Tab 菜单没有出现时滚轮仍保持正常的功能. 语法:

    MButton::AltTabMenu
    WheelDown::AltTab
    WheelUp::ShiftAltTab

### 使键盘成为鼠标按键

让键盘按键 成为 鼠标按钮, 或当您按住某个键或鼠标按钮时持续重复某个动作. 有关示例请参阅重映射页面.

### 让你的热键是上下文相关的

让最容易使用的热键根据不同的窗口类型执行适合的操作. 在下面的例子中, 右 `Ctrl` 键会根据活动窗口是记事本还是计算器执行不同的操作:

    #HotIf WinActive("ahk_class Notepad")
    RControl::Send "^s"  ; 在记事本中保存当前文件.

    #HotIf WinActive("Calculator")
    RControl::Send "^c!{tab}^v"  ; 复制计算器的结果到之前的活动窗口.

有关详情, 请参阅 #HotIf.

### 定义在键入时展开的缩写

也称为热字串. 不需要经过特殊的训练或脚本编写经验. 例如, 包含下列语句的脚本执行后, 在您输入 ceo, cfo 和 btw 时会自动扩展它们:

    ::ceo::Chief Executive Officer
    ::cfo::Chief Financial Officer
    ::btw::by the way

## 游戏

### 减少手指的磨损

别人拼血流汗时, 您只需动动手指, 就可执行一系列复杂的操作. 因为能使用几乎任何按键作为热键, 包括单个字母, 方向键, 数字小键盘按键, 甚至是修饰键本身(Ctrl, Alt, Win 和 Shift).

### 创建鼠标热键

创建鼠标热键, 包括鼠标滚轮按钮(MButton) 和往上/往下/往左/往右转动滚轮(WheelUp, WheelDown, WheelLeft 和 WheelRight). 您还可以把键盘键和鼠标按钮组合使用. 例如, 按住 Ctrl 时点击鼠标右键可以写为 `^RButton::`.

### 创建 "穿透" 热键

例如, 点击鼠标左键一方面触发热键, 另一方面点击仍可以被发送到游戏中(语法: `~LButton::`).

### 在屏幕上自动化游戏动作

使用例如 PixelSearch, PixelGetColor 和 ImageSearch 的函数可以自动化游戏操作.

### 使用键盘钩子

使用键盘钩子来实现热键, 当游戏占用较多 CPU 资源时, 这种方法会比其他方法响应的更及时. 使用钩子还可以解除在游戏中只有某些按键才可以 "映射" 到游戏动作上的限制.

## 相关主题

- 热键
- 热字串
- 重映射按键

dftg