# 高级快捷键功能

注意：下述功能中，多数需要 Windows NT/2000/XP 或更高版本操作系统。
让最容易按的键变得更有用：有些键占了好位置，易于按下，但却不常用。为什么不改造它们呢？比如，如果你的右 ALT 键很不常用，则不妨为它指定一个常用的操作：

    RAlt::
    MsgBox 你按下了右 ALT 键。
    return

另外，也可以把右 Alt 作为一个“引导键”，再加上一个其他键组成快捷键。这样的好处是不会占用右Alt的本来功能。在下面的例子中，右Alt 就成为了引导键，和j一起，实现了切换窗口的功能。作为引导键，它可以和任何其他键一起按下发挥作用。而没有其他键按下时，它仍然能发挥自己的作用（如上面的例子）：

    RAlt & j::AltTab

修饰键不再局限于 CTRL、ALT、SHIFT 和 WIN：你可以使用任意两个按键或鼠标按键组成自定义快捷键。例如，按住小键盘数字0，再按下数字1 就形成了一个快捷键（写为：Numpad0 & Numpad1::）；按住 CapsLock，再按下另一个键或用鼠标点击右键（写为：CapsLock & RButton::）。这种情况下，CapsLock 键的状态（大写/小写）不会发生改变。详见 自定义组合键。

用鼠标滚轮（或其他键）代替 Alt-Tab：点击鼠标滚轮，就可以显示窗口选择菜单；上下滚动，就在各窗口图标进行选择；选中之后再次按下滚轮，则切换到选中的窗口。并且，在Alt-Tab菜单不出现时，鼠标滚轮的正常功能仍然可以使用。脚本：

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

让按键变成鼠标键，或者在按住某个键或鼠标键时，让计算机重复某个动作。示例见 remapping page。

让快捷键区分情境：可以让最易使用的快捷键在不同的程序中，调用不同的最常用功能。下面的脚本可以让右Ctrl键在记事本和计算器中，分别实现不同功能：

    #IfWinActive ahk_class Notepad
    RControl::WinMenuSelectItem, , , 文件, 保存  ; 在记事本中保存当前文件

    #IfWinActive ahk_class SciCalc
    RControl::Send, ^c!{tab}^v  ; 在计算器中，把计算结果复制到原来的活动窗口

详见 #IfWinActive。

热字符串：实现缩写功能。无须经过任何培训，就可以写出这样的脚本。例如，下述脚本将自动把 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（搜索图像）这样的命令来实现自动操作。
- 可以选择使用 keyboard hook来实现快捷键。在游戏占用较多CPU资源时，此方法比其他方法的响应性更好。它还能覆盖游戏软件本身对哪些键可以映射的限制。

更多信息，请见 Hotkeys 章节。