# 按键列表、鼠标按键和操纵杆控制

## 鼠标 (鼠标热键需要 Windows NT/2000/XP 或之后版本)

LButton - 鼠标左键
RButton - 鼠标右键
MButton - 鼠标中键或滚轮

WheelDown - 这相当于将鼠标滚轮向后旋转(朝向你自己)
WheelUp - 上面这种的反向。
WheelLeft 和 WheelRight [v1.0.48+] - 这两个要求鼠标有左右滚动的能力，而且它们在 Windows Vista 以前的操作系统中没有效果。
(参见 mouse wheel hotkeys 来检测鼠标滚轮被滚动了多少。)

仅支持 Windows 2000/XP 或之后版本：
XButton1 - 仅出现在某些鼠标上的一个按键
XButton2 - 同上

## 键盘

注意：字母和数字按键的名称和单个字母或数字是一样的。例如：b 表示 "b" 键，5 表示 "5" 键。

Space - 空格键
Tab
Enter (或 Return)
Escape (或 Esc)
Backspace (或 BS)

Delete (或 Del)
Insert (或 Ins)
Home
End
PgUp
PgDn
Up
Down
Left
Right

ScrollLock
CapsLock
NumLock

Numlock 启用 | Numlock 关闭
Numpad0 | NumpadIns
Numpad1 | NumpadEnd
Numpad2 | NumpadDown
Numpad3 | NumpadPgDn
Numpad4 | NumpadLeft
Numpad5 | NumpadClear
Numpad6 | NumpadRight
Numpad7 | NumpadHome
Numpad8 | NumpadUp
Numpad9 | NumpadPgUp
NumpadDot (.) | NumpadDel
NumpadDiv (/) | NumpadDiv (/)
NumpadMult (*) | NumpadMult (*)
NumpadAdd (+) | NumpadAdd (+)
NumpadSub (-) | NumpadSub (-)
NumpadEnter | NumpadEnter

F1 到 F24 - 在大多数键盘顶端的 12 个或更多的功能键。

AppsKey - 这是个调用右键上下文菜单的按键。（译注：一般在右 Win 键和右 Ctrl 键中间）

LWin - 左边的 windows标志 键
RWin - 右边的 windows标志 键。注意：和 Control/Alt/Shift 不同，这里没有一般的/中性的 "Win" 键因为操作系统不支持。
Control (或 Ctrl)
Alt
Shift
注意：Shift:: 、Alt:: 和 Control:: 热键在按键松开时激发除非它们有波浪符前缀例如 ~Alt:: 。相比之下，一个明确了左或右的热键例如 LAlt:: 在按下时激发。

注意：多半，下面的 6 个键不被 Windows 95/98/Me 支持。使用上面的代替：
LControl (或 LCtrl) - 左边的 control 键
RControl (或 RCtrl) - 右边的 control 键
LShift - 左边的 shift 键
RShift - 右边的 shift 键
LAlt - 左边的 Alt 键
RAlt - 注意：如果你的键盘布局用 AltGr 代替了 RAlt，你也许可以通过 <^>! 让它像这里描述的那样作为一个热键前缀来使用。此外，"LControl & RAlt::" 将让 AltGr 它自身成为一个热键。

PrintScreen
CtrlBreak
Pause
Break -- 由于此键和 Pause 是一起的，在热键中不能使用 ^Pause 或 ^Break，而用 ^CtrlBreak 来代替。

Help - 此键也许在大多数键盘上不存在。它通常和 F1 不一样。
Sleep - 注意 sleep 键在一些键盘上可能不是休眠功能。（译注：电源选项>高级 标签中可以调节。）

下面的仅存在那些有额外按键或按钮的多媒体或 Internet 键盘上：
Browser_Back
Browser_Forward
Browser_Refresh
Browser_Stop
Browser_Search
Browser_Favorites
Browser_Home
Volume_Mute
Volume_Down
Volume_Up
Media_Next
Media_Prev
Media_Stop
Media_Play_Pause
Launch_Mail
Launch_Media
Launch_App1
Launch_App2

SCnnn (这里 nnn 是一个按键的扫描代码) - 识别上面没有提到的特殊的按键。详见特殊按键。

VKnn (这里 nn 是一个按键的十六进制虚拟按键代码) - 这种极少用的方法也阻止了某些类型的热键去依赖键盘钩子。例如，后面的热键不使用键盘钩子，但作为一个副作用，通过按 Home 或 NumpadHome 都能触发它：^VK24::MsgBox 你在按住 Control 的同时按下了 Home 或 NumpadHome 键。详见特殊按键。

## 操纵杆

Joy1 到 Joy32: 操纵杆的按钮。要帮忙确定你的操纵杆的按钮编号，请用这个测试脚本。注意热键前缀符号例如 ^ (control) 和 + (shift) 不被支持 (虽然 GetKeyState 能用来代替)。同样注意如果激活的窗口被设计成探测操纵杆按钮的按下，操纵杆的按钮按下将总会“传递”给它。

虽然下面的操纵杆控制器名称不能被用作热键，但它们能和 GetKeyState 一起使用：
JoyX, JoyY 和 JoyZ: 操纵杆的 X (水平的) 、Y (垂直的) 和 Z (高度/深度) 轴。
JoyR: 方向舵或操纵杆的第 4 个轴。
JoyU 和 JoyV: 操纵杆的第 5 个和第 6 个轴。
JoyPOV: point-of-view (hat) 控制器。
JoyName: 操纵杆的名称或它的驱动。
JoyButtons: 操纵杆支持的按钮总数(不会总是精确的)。
JoyAxes: 操纵杆支持的轴的总数。
JoyInfo: 提供一个包含零或下面多个字母组成的字串来显示操纵杆的功能：Z (有 Z 轴), R (有 R 轴), U (有 U 轴), V (有 V 轴), P (有 POV 控制器), D (POV 控制器有少数不连续的/不同的设置), C (POV 控制器是连续的/精细的)。字串示例：ZRUVPD

多个操纵杆：如果计算机有多个操纵杆并且你想在第一个旁边使用另一个，那么在控制器名称前面包含操纵杆编号。例如，2joy1 是第二个操纵杆的第一个按钮。

注意：如果你获得的脚本在识别你的操纵杆时有问题，有一个人报告说需要指定一个操纵杆的编号为除 1 以外的数字，即使只有单独一个操纵杆存在。不清楚这种情况如何发生的或者它是否正常，但将操纵杆编号在操纵杆测试脚本中试验能帮助确定这是否适用于你的系统。

也可以看：
操纵杆重映射: 用一个操纵杆发送键击和鼠标点击的方法。
操纵杆到鼠标脚本: 将操纵杆作为鼠标使用。

## 手持遥控

响应手持遥控通过 WinLIRC 客户端脚本发送的信号。

## 特殊按键

如果你的键盘或鼠标有按键没有在上面被列出来，你也许通过采用下面的步骤仍有可能使它成为一个热键(需要 Windows XP/2000/NT 或之后版本)：

1. 确保至少有一个使用键盘钩子的脚本正在运行。你只要通过打开一个脚本的主窗口并从菜单栏选择 "View->Key history" 就能知道它是否使用了键盘钩子。
2. 双击那个脚本的托盘图标来打开它的主窗口。
3. 按下你键盘上的某个“神秘按键”。
4. 选择菜单项 "View->Key history"
5. 向下滚动到页面的底部。在底部附近的某处就有你的按键的按下和弹起事件记录。注意：某些按键不生成事件记录，因此这里将看不到记录。如果是这种情况，你不能直接让那个特殊按键成为一个热键，因为你的键盘驱动或硬件在一个 AutoHotkey 访问不到的很低的层面处理它。要得到可能的解决方案，再往下看。
6. 如果你的按键可被探测到，记下在列表第二列的 3 位十六进制数值 (例如 159)。
7. 要定义此键为一个热键，参照此例：

       SC159:: ;用你那按键的数值替换 159。
       MsgBox, %A_ThisHotKey% 被按下。
       return

反向：要让其他某些键重映射为一个“神秘按键”，参照此例：

    ;用上面发现的数值替换 159。用按键的虚拟键值替换 FF (如果需要的话)，它能在按键历史页面的第一列找到。
    #c::Send {vkFFsc159}

替换的解决方案：如果你的按键或鼠标按键在按键历史页面没有被探测到，下面的某种方法也许有帮助：

1. 重新配置你的鼠标或键盘附带的软件(大多数时候能在控制面板或开始菜单进行访问) 来使“神秘按键”发送其他一些键击。然后这样的一个键击能在脚本里被定义为一个热键。例如，如果你设置一个神秘按键来发送 Control+F1 ，之后你能通过在脚本中用 ^F1:: 直接让它成为一个热键。

2. 试试 DllCall: Support for Human Interface Devices 。你也可以在 forum (论坛) 中搜索类似 RawInput* 的关键字。

3. 下面是一个最后的手段并且通常应该仅在绝望时尝试。这是因为成功的机会很小并且它可能导致不想要的副作用而且难以撤销：
   禁用或移除你的键盘或鼠标附带的额外的软件或者将它的驱动改变为一个更加标准的例如建立在操作系统上。这里假设的是有那么一种驱动给你特殊的键盘或鼠标，而你能不用它自定义的驱动和软件提供的特性而继续使用下去。

翻译：天堂之门 menk33@163.com 2008年12月31日