名称 | 描述 |
---|---|
LButton | 主鼠标按钮. 对应哪个物理按钮取决于系统设置; 默认情况下, 它是鼠标左键. |
RButton | 副鼠标按钮. 对应哪个物理按钮取决于系统设置; 默认情况下, 它是鼠标右键. |
MButton | 鼠标中键或滚轮 |
名称 | 描述 |
---|---|
XButton1 | 鼠标的第四个按键. 通常和 Browser_Back 执行相同功能. |
XButton2 | 鼠标的第五个按键. 通常和 Browser_Forward 执行相同功能. |
名称 | 描述 |
---|---|
WheelDown | 向下转动鼠标滚轮(朝向您的方向). |
WheelUp | 向上转动鼠标滚轮(远离您的方向). |
WheelLeft WheelRight |
向左或向右滚动. 这些键可以用作热键, 用于某些(但并非所有) 带第二个滚轮或支持左右滚动的鼠标. 在某些情况下, 必须通过鼠标的自带软件包控制这个功能. 不论鼠标如何特殊, Send 和 Click 都能在支持它们的程序里水平滚动. |
注意: 字母和数字按键的名称和单个字母或数字相同. 例如: b 表示按键 B, 而 5 表示按键 5.
虽然任何单个字符都可以用作键名, 但其含义(扫描码或虚拟键码) 取决于当前的键盘布局. 此外, 根据具体情况, 某些特殊字符可能需要转义或用大括号括起来. 字母 a-z 或 A-Z 可以用来指代相应的虚拟键码(通常是 vk41-vk5A), 即使它们不包含在当前的键盘布局中.
名称 | 描述 |
---|---|
CapsLock | CapsLock(大小写锁定键)
注意: Windows IME 可能会干扰 CapsLock 的检测和功能; 有关详情, 请参阅 CapsLock 和 IME. |
Space | Space(空格键) |
Tab | Tab(Tab 键) |
Enter | Enter |
Escape(或 Esc) | Esc |
Backspace(或 BS) | Backspace |
名称 | 描述 |
---|---|
ScrollLock | ScrollLock(滚动锁定键). 当按住 Ctrl 键时, ScrollLock 键会产生 CtrlBreak 的键码, 但可以通过扫描码与 Pause 区别开来. |
Delete(或 Del) | Del |
Insert(或 Ins) | Ins |
Home | Home |
End | End |
PgUp | PgUp(向上翻页键) |
PgDn | PgDn(向下翻页键) |
Up | ↑(上方向键) |
Down | ↓(下方向键) |
Left | ←(左方向键) |
Right | →(右方向键) |
由于系统行为, 根据 NumLock 是 ON(开) 还是 OFF(关), 以下用斜杠分隔的键识别为不同的按键. 如果 NumLock 为 OFF(/ON) 但 Shift 按下, 系统将临时释放 Shift 并且就像 NumLock 为 ON(/OFF) 状态一样.
名称 | 描述 |
---|---|
Numpad0 / NumpadIns | 0 / Ins |
Numpad1 / NumpadEnd | 1 / End |
Numpad2 / NumpadDown | 2 / ↓ |
Numpad3 / NumpadPgDn | 3 / PgDn |
Numpad4 / NumpadLeft | 4 / ← |
Numpad5 / NumpadClear | 5 / 通常什么都不做 |
Numpad6 / NumpadRight | 6 / → |
Numpad7 / NumpadHome | 7 / Home |
Numpad8 / NumpadUp | 8 / ↑ |
Numpad9 / NumpadPgUp | 9 / PgUp |
NumpadDot / NumpadDel | . / Del |
NumLock | NumLock(数字锁定键). 当按住 Ctrl 键时, NumLock 键会产生 Pause 的键码, 所以请使用 Pause 来代替 ^Pause 作为热键. |
NumpadDiv | /(除号) |
NumpadMult | *(乘号) |
NumpadAdd | +(加号) |
NumpadSub | -(减号) |
NumpadEnter | Enter |
名称 | 描述 |
---|---|
F1 - F24 | 在大多数键盘顶部的 12 个或更多的功能键. |
名称 | 描述 |
---|---|
LWin | 左边的 Win. 对应 <# 热键前缀. |
RWin |
右边的 Win. 对应 注意: 与 Ctrl/Alt/Shift 不同, 没有一般的/中性的 "Win", 因为操作系统不支持. 然而, 带有 |
Control (或 Ctrl) | Ctrl. 作为热键(Control:: ) 时在它弹起时触发, 不过如果加上波浪号前缀可以改变这种情况. 对应 ^ 热键前缀. |
LControl (或 LCtrl) | 左 Ctrl. 对应 <^ 热键前缀. |
RControl (或 RCtrl) | 右 Ctrl. 对应 >^ 热键前缀. |
Shift | Shift. 作为热键(Shift:: ) 时在它弹起时触发, 不过如果加上波浪号前缀可以改变这种情况. 对应 + 热键前缀. |
LShift | 左 Shift. 对应 <+ 热键前缀. |
RShift | 右 Shift. 对应 >+ 热键前缀. |
Alt | Alt. 作为热键(Alt:: ) 时在它弹起时触发, 不过如果加上波浪号前缀可以改变这种情况. 对应 ! 热键前缀. |
LAlt | 左 Alt. 对应 <! 热键前缀. |
RAlt |
右 Alt. 对应 注意: 如果您的键盘布局存在 AltGr 而不是 RAlt, 那么您完全可以根据这里描述的那样, 通过 |
下面列出的每个按键的功能可以通过修改 Windows 注册表进行替换. 这个表格中显示的是在 Windows 系统的大多数版本中每个按键的默认功能.
名称 | 描述 |
---|---|
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 | 打开计算器 |
名称 | 描述 |
---|---|
AppsKey | Menu. 这是调用右键上下文菜单的按键. |
PrintScreen | PrtScr(截屏键) |
CtrlBreak | Ctrl+Pause 或 Ctrl+ScrollLock |
Pause | Pause(暂停键) 或 Ctrl+NumLock. 当按住 Ctrl 键时, Pause 会产生 CtrlBreak 的键码, 而 NumLock 产生 Pause , 所以请使用 ^CtrlBreak 代替 ^Pause 来作为热键. |
帮助 | Help(帮助键). 此键可能在大多数键盘上不存在. 它通常和 F1 不同. |
Sleep | Sleep(休眠键). 注意在一些键盘上的 sleep 键可能不是休眠功能. |
SCnnn | 请在 nnn 中指定按键的扫描码. 识别上面没有提到的罕见的按键. 请参阅特殊按键了解详情. |
VKnn | 请在 nn 中指定十六进制的虚拟按键码. 这种极少用的方法还可以避免某些类型的热键需要安装键盘钩子. 例如, 后面的热键不使用键盘钩子, 但副作用是它会在按下 Home 或 NumpadHome 的 其中一个 时触发: ^VK24::MsgBox "You pressed Home or NumpadHome while holding down Control." 已知限制: 强制使用键盘钩子的 VK 热键, 例如 警告: 只有 Send, GetKeyName, GetKeyVK, GetKeySC 和 A_MenuMaskKey 支持 VKnn 和 SCnnn 组合使用. 如果在任何其他情况下组合使用(或存在任何其他无效后缀), 则不能识别按键. 例如, |
注意: 由于历史原因, 以下按钮和控件名称以 Joy
开头, 这代表操纵杆. 然而, 它们通常也适用于其他游戏控制器, 如游戏手柄或方向盘.
Joy1 到 Joy32: 控制器的按钮. 要辅助判断您控制器的按钮编号, 请使用此测试脚本. 请注意这里不支持热键前缀符, 例如 ^(control) 和 +(shift) (尽管可以使用 GetKeyState 作为替代方法). 还必须注意, 如果活动窗口设计对控制器按钮进行检测, 那么控制器按钮按下时总是会 "传递" 给它.
尽管下列控制器控制器的名称不能设为热键, 但它们可以用于 GetKeyState:
例如, 当使用 Xbox Wireless/360 控制器时, JoyX/JoyY 是左摇杆, JoyR/JoyU 是右摇杆, JoyZ 是左右触发器, 而 JoyPOV 是方向键(D-pad).
多个控制器: 如果计算机上有多个控制器并且您想使用第一个外的其他控制器, 那么请在控制器名称的前面加上控制器的编号(最大为 16). 例如, 2joy1 表示第二个控制器的首个按钮.
注意: 如果您在使用脚本识别您的控制器时遇到问题, 曾有人报告说尽管只有一个控制器却需要指定大于 1 的控制器编号. 不清楚这种方法是如何得到的或是否正常, 不过请尝试在控制器测试脚本中使用控制器编号也许可以帮助确定这种方法是否适合您的系统.
另请参阅:
通过 WinLIRC 客户端脚本响应手持遥控器的信号.
如果您的键盘或鼠标含有前面没有列出的按键, 那么使用下列步骤后您仍可能把它设为热键.
SC159::MsgBox ThisHotkey " was pressed." ; 替换 159 为您的按键的值.另请参阅 ThisHotkey.
反向: 要把其他键重映射 为 "神秘按键", 请参照此例:
; 把 159 替换为上面找到的值. 把 FF(如果需要) 替换为 ; 按键的虚拟键, 它可以在按键历史屏幕的首列找到. #c::Send "{vkFFsc159}" ; 有关详情, 请参阅 Send {vkXXscYYY}.
可供选择的解决方案: 如果您的按键或鼠标按钮没有在按键历史页面检测到, 那么下面的其中一种方法可能有帮助:
重新配置您鼠标或键盘的附带软件(有时可以在控制面板或开始菜单中访问) 来让 "神秘按键" 发送其他的键击. 然后可以在脚本中把这样的键击设置为热键. 例如, 如果您配置神秘按键来发送 Ctrl+F1, 然后在脚本中通过使用 ^F1::
您可以把这个按键间接的设置为热键.
试试 AHKHID. 你还可以尝试以 RawInput*
, USB HID
或 AHKHID
作为关键字在论坛进行搜索.
下面是最后的手段, 通常应该在其他所有方法都无效时才去尝试. 这是由于成功的机会很小且可能会引起难以取消的不必要的副作用:
禁用或移除您键盘或鼠标的附带软件, 或者让它使用更标准的驱动, 例如操作系统内置的那个. 这里假设您特殊的键盘或鼠标使用自己的驱动并且您不使用其自带驱动和软件提供的功能.
Windows IME 的某些配置(如, 日文输入与英文键盘) 使用 CapsLock 来切换模式. 在这种情况下, CapsLock 被 IME 压制, 并且无法被 AutoHotkey 检测到. 不过 Alt+CapsLock, Ctrl+CapsLock 和 Shift+CapsLock 等快捷键可以通过变通的方法禁用. 具体来说, 发送松开按键来修改 IME 的状态, 但通过给键盘钩子发送信号来抑制该事件, 从而防止任何其他影响. 可以使用以下函数来实现这一目的:
; 必须安装键盘钩子. InstallKeybdHook SendSuppressedKeyUp(key) { DllCall("keybd_event" , "char", GetKeyVK(key) , "char", GetKeySC(key) , "uint", KEYEVENTF_KEYUP := 0x2 , "uptr", KEY_BLOCK_THIS := 0xFFC3D450) }
将该函数复制到脚本中或保存为库文件夹中的 SendSuppressedKeyUp.ahk, 并在脚本中加入 #Include <SendSuppressedKeyUp>
, 可以按照以下方式使用:
; 禁止 IME 的 Alt+key 快捷键. ~LAlt::SendSuppressedKeyUp "LAlt" ; 测试热键: !CapsLock::MsgBox % A_ThisHotkey ; 重映射 CapsLock 为 LCtrl 以与 IME 兼容的方式. *CapsLock:: { Send {Blind}{LCtrl DownR} SendSuppressedKeyUp "LCtrl" } *CapsLock up:: { Send {Blind}{LCtrl Up} }unixetc