下表列出 Windows 常用的 虚拟键码(Virtual-Key Code),供 KeyPress、KeyDown、KeyUp 等接口的 vk_code / vk 参数 查阅。
- 十六进制:脚本中常写作
0x09、0x0D 等形式。 - 十进制:与
0x 写法等价,便于在仅支持十进制的环境或调试输出中对照。 - 部分键在不同键盘布局、输入法下 扫描码 不同,但 VK 常量名与数值 与下表一致。
- 未列出的保留位、厂商扩展键以 Windows SDK(winuser.h) 与当前系统为准。
若接口或上层封装支持 字符串键名(如 "enter"、"f1"),其解析可参考本文 「KeyPress 字符串别名(KeyPressChar)」 一节;该表与下方 VK 常量表 数值一致,仅多一层 可读名称 → 数值 的映射。
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_LBUTTON | 0x01 | 1 | 鼠标左键 |
VK_RBUTTON | 0x02 | 2 | 鼠标右键 |
VK_CANCEL | 0x03 | 3 | Ctrl+Break / 控制中断(传统含义,依应用而定) |
VK_MBUTTON | 0x04 | 4 | 鼠标中键(三键鼠标) |
VK_XBUTTON1 | 0x05 | 5 | 鼠标侧键 1(X1) |
VK_XBUTTON2 | 0x06 | 6 | 鼠标侧键 2(X2) |
| — | 0x07 | 7 | 未定义 |
VK_BACK | 0x08 | 8 | 退格键(Backspace) |
VK_TAB | 0x09 | 9 | 制表键(Tab) |
| — | 0x0A–0x0B | 10–11 | 保留 |
VK_CLEAR | 0x0C | 12 | Clear(数字小键盘清除,依键盘而定) |
VK_RETURN | 0x0D | 13 | 回车键(Enter) |
| — | 0x0E–0x0F | 14–15 | 未定义 |
VK_SHIFT | 0x10 | 16 | Shift 换挡键 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_CONTROL | 0x11 | 17 | Ctrl 控制键 |
VK_MENU | 0x12 | 18 | Alt 键(菜单键,勿与应用程序键混淆) |
VK_PAUSE | 0x13 | 19 | Pause / Break |
VK_CAPITAL | 0x14 | 20 | Caps Lock 大写锁定 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_KANA / VK_HANGUL | 0x15 | 21 | 假名 / 韩文模式(依布局与系统) |
| — | 0x16 | 22 | 未定义 |
VK_JUNJA | 0x17 | 23 | 韩文 Junja 模式 |
VK_FINAL | 0x18 | 24 | 韩文 Final 模式 |
VK_HANJA / VK_KANJI | 0x19 | 25 | 汉字 / 日文汉字模式 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
| — | 0x1A | 26 | 未定义 |
VK_ESCAPE | 0x1B | 27 | Esc 退出 / 取消 |
VK_CONVERT | 0x1C | 28 | 日文转换 |
VK_NONCONVERT | 0x1D | 29 | 日文不转换 |
VK_ACCEPT | 0x1E | 30 | 日文接受 |
VK_MODECHANGE | 0x1F | 31 | 模式切换 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_SPACE | 0x20 | 32 | 空格键 |
VK_PRIOR | 0x21 | 33 | Page Up 上一页 |
VK_NEXT | 0x22 | 34 | Page Down 下一页 |
VK_END | 0x23 | 35 | End 行尾 / 文档尾 |
VK_HOME | 0x24 | 36 | Home 行首 / 文档首 |
VK_LEFT | 0x25 | 37 | 向左方向键 |
VK_UP | 0x26 | 38 | 向上方向键 |
VK_RIGHT | 0x27 | 39 | 向右方向键 |
VK_DOWN | 0x28 | 40 | 向下方向键 |
VK_SELECT | 0x29 | 41 | Select |
VK_PRINT | 0x2A | 42 | Print(旧式) |
VK_EXECUTE | 0x2B | 43 | Execute |
VK_SNAPSHOT | 0x2C | 44 | Print Screen 截屏 |
VK_INSERT | 0x2D | 45 | Insert 插入 |
VK_DELETE | 0x2E | 46 | Delete 删除 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_0 | 0x30 | 48 | 主键盘数字 0 |
VK_1 | 0x31 | 49 | 主键盘数字 1 |
VK_2 | 0x32 | 50 | 主键盘数字 2 |
VK_3 | 0x33 | 51 | 主键盘数字 3 |
VK_4 | 0x34 | 52 | 主键盘数字 4 |
VK_5 | 0x35 | 53 | 主键盘数字 5 |
VK_6 | 0x36 | 54 | 主键盘数字 6 |
VK_7 | 0x37 | 55 | 主键盘数字 7 |
VK_8 | 0x38 | 56 | 主键盘数字 8 |
VK_9 | 0x39 | 57 | 主键盘数字 9 |
下列每一行对应 主键盘区 该字母键的虚拟键码;实际输入 大写 或 小写 由 Caps Lock、Shift 与当前焦点窗口的输入法共同决定,与 VK 数值本身 无关。
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_A | 0x41 | 65 | 字母键 A |
VK_B | 0x42 | 66 | 字母键 B |
VK_C | 0x43 | 67 | 字母键 C |
VK_D | 0x44 | 68 | 字母键 D |
VK_E | 0x45 | 69 | 字母键 E |
VK_F | 0x46 | 70 | 字母键 F |
VK_G | 0x47 | 71 | 字母键 G |
VK_H | 0x48 | 72 | 字母键 H |
VK_I | 0x49 | 73 | 字母键 I |
VK_J | 0x4A | 74 | 字母键 J |
VK_K | 0x4B | 75 | 字母键 K |
VK_L | 0x4C | 76 | 字母键 L |
VK_M | 0x4D | 77 | 字母键 M |
VK_N | 0x4E | 78 | 字母键 N |
VK_O | 0x4F | 79 | 字母键 O |
VK_P | 0x50 | 80 | 字母键 P |
VK_Q | 0x51 | 81 | 字母键 Q |
VK_R | 0x52 | 82 | 字母键 R |
VK_S | 0x53 | 83 | 字母键 S |
VK_T | 0x54 | 84 | 字母键 T |
VK_U | 0x55 | 85 | 字母键 U |
VK_V | 0x56 | 86 | 字母键 V |
VK_W | 0x57 | 87 | 字母键 W |
VK_X | 0x58 | 88 | 字母键 X |
VK_Y | 0x59 | 89 | 字母键 Y |
VK_Z | 0x5A | 90 | 字母键 Z |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_LWIN | 0x5B | 91 | 左 Windows 徽标键 |
VK_RWIN | 0x5C | 92 | 右 Windows 徽标键 |
VK_APPS | 0x5D | 93 | 应用程序键(上下文菜单键) |
| — | 0x5E | 94 | 保留 |
VK_SLEEP | 0x5F | 95 | 睡眠(部分键盘) |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_NUMPAD0 | 0x60 | 96 | 小键盘 0 |
VK_NUMPAD1 | 0x61 | 97 | 小键盘 1 |
VK_NUMPAD2 | 0x62 | 98 | 小键盘 2 |
VK_NUMPAD3 | 0x63 | 99 | 小键盘 3 |
VK_NUMPAD4 | 0x64 | 100 | 小键盘 4 |
VK_NUMPAD5 | 0x65 | 101 | 小键盘 5 |
VK_NUMPAD6 | 0x66 | 102 | 小键盘 6 |
VK_NUMPAD7 | 0x67 | 103 | 小键盘 7 |
VK_NUMPAD8 | 0x68 | 104 | 小键盘 8 |
VK_NUMPAD9 | 0x69 | 105 | 小键盘 9 |
VK_MULTIPLY | 0x6A | 106 | 小键盘 * |
VK_ADD | 0x6B | 107 | 小键盘 + |
VK_SEPARATOR | 0x6C | 108 | 分隔符(依区域) |
VK_SUBTRACT | 0x6D | 109 | 小键盘 - |
VK_DECIMAL | 0x6E | 110 | 小键盘 . |
VK_DIVIDE | 0x6F | 111 | 小键盘 / |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_F1 | 0x70 | 112 | F1 |
VK_F2 | 0x71 | 113 | F2 |
VK_F3 | 0x72 | 114 | F3 |
VK_F4 | 0x73 | 115 | F4 |
VK_F5 | 0x74 | 116 | F5 |
VK_F6 | 0x75 | 117 | F6 |
VK_F7 | 0x76 | 118 | F7 |
VK_F8 | 0x77 | 119 | F8 |
VK_F9 | 0x78 | 120 | F9 |
VK_F10 | 0x79 | 121 | F10 |
VK_F11 | 0x7A | 122 | F11 |
VK_F12 | 0x7B | 123 | F12 |
VK_F13 | 0x7C | 124 | F13 |
VK_F14 | 0x7D | 125 | F14 |
VK_F15 | 0x7E | 126 | F15 |
VK_F16 | 0x7F | 127 | F16 |
VK_F17 | 0x80 | 128 | F17 |
VK_F18 | 0x81 | 129 | F18 |
VK_F19 | 0x82 | 130 | F19 |
VK_F20 | 0x83 | 131 | F20 |
VK_F21 | 0x84 | 132 | F21 |
VK_F22 | 0x85 | 133 | F22 |
VK_F23 | 0x86 | 134 | F23 |
VK_F24 | 0x87 | 135 | F24 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_NUMLOCK | 0x90 | 144 | Num Lock 数字锁定 |
VK_SCROLL | 0x91 | 145 | Scroll Lock 滚动锁定 |
| — | 0x92–0x96 | 146–150 | OEM 特定 |
| — | 0x97 | 151 | 未赋值 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_LSHIFT | 0xA0 | 160 | 左 Shift |
VK_RSHIFT | 0xA1 | 161 | 右 Shift |
VK_LCONTROL | 0xA2 | 162 | 左 Ctrl |
VK_RCONTROL | 0xA3 | 163 | 右 Ctrl |
VK_LMENU | 0xA4 | 164 | 左 Alt |
VK_RMENU | 0xA5 | 165 | 右 Alt |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_BROWSER_BACK | 0xA6 | 166 | 浏览器后退 |
VK_BROWSER_FORWARD | 0xA7 | 167 | 浏览器前进 |
VK_BROWSER_REFRESH | 0xA8 | 168 | 刷新 |
VK_BROWSER_STOP | 0xA9 | 169 | 停止 |
VK_BROWSER_SEARCH | 0xAA | 170 | 搜索 |
VK_BROWSER_FAVORITES | 0xAB | 171 | 收藏 |
VK_BROWSER_HOME | 0xAC | 172 | 主页 |
VK_VOLUME_MUTE | 0xAD | 173 | 静音 |
VK_VOLUME_DOWN | 0xAE | 174 | 音量减 |
VK_VOLUME_UP | 0xAF | 175 | 音量加 |
VK_MEDIA_NEXT_TRACK | 0xB0 | 176 | 下一曲 |
VK_MEDIA_PREV_TRACK | 0xB1 | 177 | 上一曲 |
VK_MEDIA_STOP | 0xB2 | 178 | 停止播放 |
VK_MEDIA_PLAY_PAUSE | 0xB3 | 179 | 播放/暂停 |
VK_LAUNCH_MAIL | 0xB4 | 180 | 启动邮件 |
VK_LAUNCH_MEDIA_SELECT | 0xB5 | 181 | 媒体选择 |
VK_LAUNCH_APP1 | 0xB6 | 182 | 启动应用程序 1 |
VK_LAUNCH_APP2 | 0xB7 | 183 | 启动应用程序 2 |
不同键盘布局下 同一 VK 可能对应 不同字符,下表为常见美式布局含义。
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_OEM_1 | 0xBA | 186 | ; :(美式) |
VK_OEM_PLUS | 0xBB | 187 | = + |
VK_OEM_COMMA | 0xBC | 188 | , < |
VK_OEM_MINUS | 0xBD | 189 | - _ |
VK_OEM_PERIOD | 0xBE | 190 | . > |
VK_OEM_2 | 0xBF | 191 | / ? |
VK_OEM_3 | 0xC0 | 192 | 反引号与波浪号(美式布局:` 与 ~) |
VK_OEM_4 | 0xDB | 219 | 左方括号与左花括号 [ { |
VK_OEM_5 | 0xDC | 220 | 反斜杠与竖线 \ 与 ` |
VK_OEM_6 | 0xDD | 221 | ] } |
VK_OEM_7 | 0xDE | 222 | ' " |
VK_OEM_8 | 0xDF | 223 | 区域相关 |
| — | 0xE0–0xE2 | 224–226 | OEM 特定 |
| Constant | 十六进制 | 十进制 | 说明 |
|---|
VK_PACKET | 0xE7 | 231 | 用于 Unicode 输入包 |
| — | 0xE8 | 232 | 未定义 |
| — | 0xE9–0xF5 | 233–245 | OEM 特定 |
VK_ATTN | 0xF6 | 246 | Attn(注意) |
VK_CRSEL | 0xF7 | 247 | CrSel(当前选择) |
VK_EXSEL | 0xF8 | 248 | ExSel(扩展选择) |
VK_EREOF | 0xF9 | 249 | 擦除至文件尾 |
VK_PLAY | 0xFA | 250 | Play(播放) |
VK_ZOOM | 0xFB | 251 | Zoom(缩放) |
VK_NONAME | 0xFC | 252 | 保留 |
VK_PA1 | 0xFD | 253 | PA1(终端键) |
VK_OEM_CLEAR | 0xFE | 254 | OEM Clear(清除) |
| — | 0xFF | 255 | 保留 |
下列映射与插件KeyPressChar 一致:键名为小写英文或符号字面量,值为 虚拟键码 或 ASCII/Unicode 码点(与 KeyPress(instance, vk_code) 的 vk_code 一致时可混用)。
说明:
- 命名键(如
back、enter):映射到对应 VK_*。 - 单字符键(如
"0"…"9"、"a"…"z"):映射为 大写字母或数字的字符码(如 'A'=65),用于与 主键盘 可见字符一致的发送方式;若需区分左右修饰键、小键盘等,请改用 上表 VK 常量 或下表中 num* 等项。 numenter:与 enter 相同,均为 VK_RETURN(0x0D,十进制 13);小键盘 Enter 与主键盘 Enter 在虚拟键码层面相同,区分依赖具体硬件/驱动(一般脚本层无需区分)。
| 字符串键 | 十六进制 | 十进制 | 说明 |
|---|
back | 0x08 | 8 | 退格(Backspace) |
tab | 0x09 | 9 | 制表(Tab) |
enter | 0x0D | 13 | 回车(Enter / Return) |
shift | 0x10 | 16 | Shift(未区分左右,见上表 VK_LSHIFT/VK_RSHIFT) |
ctrl | 0x11 | 17 | Ctrl(未区分左右) |
alt | 0x12 | 18 | Alt(VK_MENU,未区分左右) |
cap | 0x14 | 20 | Caps Lock |
esc | 0x1B | 27 | Esc |
space | 0x20 | 32 | 空格 |
pgup | 0x21 | 33 | Page Up |
pgdn | 0x22 | 34 | Page Down |
end | 0x23 | 35 | End |
home | 0x24 | 36 | Home |
left | 0x25 | 37 | 向左 |
up | 0x26 | 38 | 向上 |
right | 0x27 | 39 | 向右 |
down | 0x28 | 40 | 向下 |
print | 0x2A | 42 | Print(旧式) |
delete | 0x2E | 46 | Delete |
win | 0x5B | 91 | 左 Windows 键(VK_LWIN) |
option | 0x5D | 93 | 应用程序键 / 上下文菜单(VK_APPS) |
| 字符串键 | 十六进制 | 十进制 | 说明 |
|---|
0 | 0x30 | 48 | 数字 0(字符码,同 VK_0) |
1 | 0x31 | 49 | 数字 1 |
2 | 0x32 | 50 | 数字 2 |
3 | 0x33 | 51 | 数字 3 |
4 | 0x34 | 52 | 数字 4 |
5 | 0x35 | 53 | 数字 5 |
6 | 0x36 | 54 | 数字 6 |
7 | 0x37 | 55 | 数字 7 |
8 | 0x38 | 56 | 数字 8 |
9 | 0x39 | 57 | 数字 9 |
| 字符串键 | 十六进制 | 十进制 | 说明 |
|---|
a | 0x41 | 65 | 字母 A 的字符码(依 Caps/Shift 决定实际大小写) |
b | 0x42 | 66 | B |
c | 0x43 | 67 | C |
d | 0x44 | 68 | D |
e | 0x45 | 69 | E |
f | 0x46 | 70 | F |
g | 0x47 | 71 | G |
h | 0x48 | 72 | H |
i | 0x49 | 73 | I |
j | 0x4A | 74 | J |
k | 0x4B | 75 | K |
l | 0x4C | 76 | L |
m | 0x4D | 77 | M |
n | 0x4E | 78 | N |
o | 0x4F | 79 | O |
p | 0x50 | 80 | P |
q | 0x51 | 81 | Q |
r | 0x52 | 82 | R |
s | 0x53 | 83 | S |
t | 0x54 | 84 | T |
u | 0x55 | 85 | U |
v | 0x56 | 86 | V |
w | 0x57 | 87 | W |
x | 0x58 | 88 | X |
y | 0x59 | 89 | Y |
z | 0x5A | 90 | Z |
| 字符串键 | 十六进制 | 十进制 | 说明 |
|---|
= | 0xBB | 187 | VK_OEM_PLUS(美式布局上多为 = / +) |
f1 … f12 | 0x70–0x7B | 112–123 | F1–F12 |
; | 0xBA | 186 | VK_OEM_1 |
, | 0xBC | 188 | VK_OEM_COMMA |
. | 0xBE | 190 | VK_OEM_PERIOD |
/ | 0xBF | 191 | VK_OEM_2 |
~ | 0xC0 | 192 | VK_OEM_3(物理键位依布局) |
[ | 0xDB | 219 | VK_OEM_4 |
\ | 0xDC | 220 | VK_OEM_5 |
] | 0xDD | 221 | VK_OEM_6 |
' | 0xDE | 222 | VK_OEM_7 |
| 字符串键 | 十六进制 | 十进制 | 说明 |
|---|
num0 … num9 | 0x60–0x69 | 96–105 | 小键盘 0–9 |
num* | 0x6A | 106 | 乘号 |
num+ | 0x6B | 107 | 加号 |
num- | 0x6D | 109 | 减号 |
num. | 0x6E | 110 | 小数点 |
num/ | 0x6F | 111 | 除号 |
numlock | 0x90 | 144 | Num Lock |
numenter | 0x0D | 13 | 与 enter 相同(VK_RETURN) |
- KeyPress 使用 整数
vk_code 时,可直接采用本文 「十进制」 或 「十六进制」 列,二者等价,例如回车:13 与 0x0D。 - 组合键(如 Ctrl+C)需分别对 修饰键 与 字母键 调用
KeyDown / KeyUp,顺序与延时见各接口说明。 - 若需输入 可见文本 而非固定 VK,可优先 KeyPressChar、KeyPressStr。
- 若插件/脚本层支持 字符串键名 解析,请以上文 KeyPressChar 为准;实际是否暴露 以对应接口文档为准。