扫描码、虚拟键码VK和HID码的区别
1、扫描码:基本键盘都是矩阵按键,通过不停的扫描来获取键值,每个生产厂家的扫描码可能不一样,所以才有了虚拟键码VK。
2、虚拟键码VK:为了统一键盘,让层应用获得统一的键值,所以在电脑获得扫描码后就会通过驱动转换成VK码。
3、HID码:是一种USB标准协议。不同于传统键盘,是在设备上就把扫描码转化成HID,或者由单片机指定HID键值,为按键的修改和添加提供了可能,USB协议已经集成在系统上,不需要安装设备驱动 。
HID码表
HID码按键名称 | 十进制 | 十六进制 |
---|
Reserved(没有事件指示) | 0 | 0x00 |
ErrorRollOver | 1 | 0x01 |
POSTFail | 2 | 0x02 |
ErrorUndefined | 3 | 0x03 |
A \ a | 4 | 0x04 |
B \ b | 5 | 0x05 |
C \ c | 6 | 0x06 |
D \ d | 7 | 0x07 |
E \ e | 8 | 0x08 |
F \ f | 9 | 0x09 |
G \ g | 10 | 0x0A |
H \ h | 11 | 0x0B |
I \ i | 12 | 0x0C |
J \ j | 13 | 0x0D |
K \ k | 14 | 0x0E |
L \ l | 15 | 0x0F |
M \ m | 16 | 0x10 |
N \ n | 17 | 0x11 |
O \ o | 18 | 0x12 |
P \ p | 19 | 0x13 |
Q \ q | 20 | 0x14 |
R \ r | 21 | 0x15 |
S \ s | 22 | 0x16 |
T \ t | 23 | 0x17 |
U \ u | 24 | 0x18 |
V \ v | 25 | 0x19 |
W \ w | 26 | 0x1A |
X \ x | 27 | 0x1B |
Y \ y | 28 | 0x1C |
Z \ z | 29 | 0x1D |
! \ 1 | 30 | 0x1E |
@ \ 2 | 31 | 0x1F |
# \ 3 | 32 | 0x20 |
$ \ 4 | 33 | 0x21 |
% \ 5 | 34 | 0x22 |
^ \ 6 | 35 | 0x23 |
& \ 7 | 36 | 0x24 |
* \ 8 | 37 | 0x25 |
( \ 9 | 38 | 0x26 |
) \ 0 | 39 | 0x27 |
Enter(回车) | 40 | 0x28 |
Ese | 41 | 0x29 |
Backspace | 42 | 0x2A |
Tab | 43 | 0x2B |
Spacebar(空格) | 44 | 0x2C |
- \ _ | 45 | 0x2D |
+ \ = | 46 | 0x2E |
{ \ [ | 47 | 0x2F |
} \ ] | 48 | 0x30 |
| \ \ | 49 | 0x31 |
# \ ~ (非美式) | 50 | 0x32 |
: \ ; | 51 | 0x33 |
" \ ’ | 52 | 0x34 |
~ \ ` | 53 | 0x35 |
< \ , | 54 | 0x36 |
> \ . | 55 | 0x37 |
? \ / | 56 | 0x38 |
Caps Lock(大写) | 57 | 0x39 |
F1 | 58 | 0x3A |
F2 | 59 | 0x3B |
F3 | 60 | 0x3C |
F4 | 61 | 0x3D |
F5 | 62 | 0x3E |
F6 | 63 | 0x3F |
F7 | 64 | 0x40 |
F8 | 65 | 0x41 |
F9 | 66 | 0x42 |
F10 | 67 | 0x43 |
F11 | 68 | 0x44 |
F12 | 69 | 0x45 |
PrintScreen | 70 | 0x46 |
Scroll Lock | 71 | 0x47 |
Pause | 72 | 0x48 |
Insert | 73 | 0x49 |
Home | 74 | 0x4A |
PageUp(上一页) | 75 | 0x4B |
Delete | 76 | 0x4C |
End | 77 | 0x4D |
PageDown | 78 | 0x4E |
RightArrow | 79 | 0x4F |
LeftArrow | 80 | 0x50 |
DownArrow | 81 | 0x51 |
UpArrow | 82 | 0x52 |
Num Lock and Clear | 83 | 0x53 |
/ | 84 | 0x54 |
* | 85 | 0x55 |
- | 86 | 0x56 |
+ | 87 | 0x57 |
Enter | 88 | 0x58 |
1 \ End | 89 | 0x59 |
2 \ Down Arrow | 90 | 0x5A |
3 \ Page Dn | 91 | 0x5B |
4 \ Left Arrow | 92 | 0x5C |
5 | 93 | 0x5D |
6 \ Right Arrow | 94 | 0x5E |
7 \ Home | 95 | 0x5F |
8 \ Up Arrow | 96 | 0x60 |
9 \ PageUp | 97 | 0x61 |
0 \ Insert | 98 | 0x62 |
. \ Delete | 99 | 0x63 |
\ \ | (非美式) | 100 | 0x64 |
Application(应用) | 101 | 0x65 |
Power(电源) | 102 | 0x66 |
keypad =(小键盘) | 103 | 0x67 |
F13 | 104 | 0x68 |
F14 | 105 | 0x69 |
F15 | 106 | 0x6A |
F16 | 107 | 0x6B |
F17 | 108 | 0x6C |
F18 | 109 | 0x6D |
F19 | 110 | 0x6E |
F20 | 111 | 0x6F |
F21 | 112 | 0x70 |
F22 | 113 | 0x71 |
F23 | 114 | 0x72 |
F24 | 115 | 0x73 |
Execute | 116 | 0x74 |
Help | 117 | 0x75 |
Menu | 118 | 0x76 |
Select | 119 | 0x77 |
Stop | 120 | 0x78 |
Again | 121 | 0x79 |
Undo | 122 | 0x7A |
Cut | 123 | 0x7B |
Copy | 124 | 0x7C |
Paste | 125 | 0x7D |
Find | 126 | 0x7E |
Mute | 127 | 0x7F |
Volume Up | 128 | 0x80 |
Volume Down | 129 | 0x81 |
Locking Caps Lock | 130 | 0x82 |
Locking Num Lock | 131 | 0x83 |
Locking Scrcll Lock | 132 | 0x84 |
Comma | 133 | 0x85 |
Equal Sign | 134 | 0x86 |
International1 | 135 | 0x87 |
International2 | 136 | 0x88 |
International3 | 137 | 0x89 |
International4 | 138 | 0x8A |
International5 | 139 | 0x8B |
International6 | 140 | 0x8C |
International7 | 141 | 0x8D |
International8 | 142 | 0x8E |
International9 | 143 | 0x8F |
LANG1 | 144 | 0x90 |
LANG2 | 145 | 0x91 |
LANG3 | 146 | 0x92 |
LANG4 | 147 | 0x93 |
LANG5 | 148 | 0x94 |
LANG6 | 149 | 0x95 |
LANG7 | 150 | 0x96 |
LANG8 | 151 | 0x97 |
LANG9 | 152 | 0x98 |
Alternate Erase | 153 | 0x99 |
SysReq / Attention | 154 | 0x9A |
Cancel(取消) | 155 | 0x9B |
Clear | 156 | 0x9C |
Prior | 157 | 0x9D |
Return | 158 | 0x9E |
Separator | 159 | 0x9F |
Out | 160 | 0xA0 |
Oper | 161 | 0xA1 |
Clear / Again | 162 | 0xA2 |
CrSel / Props | 163 | 0xA3 |
ExSel | 164 | 0xA4 |
reserved | 165~175 | 0xA5~0xAF |
00 | 176 | 0xB0 |
000 | 177 | 0xB1 |
Thousands Separator | 178 | 0xB2 |
Decimal Separator | 179 | 0xB3 |
Currency Unit | 180 | 0xB4 |
Currency Sub-unit | 181 | 0xB5 |
keypad ( (小键盘阔号) | 182 | 0xB6 |
keypad ) (小键盘阔号) | 183 | 0xB7 |
keypad { | 184 | 0xB8 |
keypad } | 185 | 0xB9 |
keypad Tab | 186 | 0xBA |
keypad Backspace | 187 | 0xBB |
keypad A | 188 | 0xBC |
keypad B | 189 | 0xBD |
keypad C | 190 | 0xBE |
keypad D | 191 | 0xBF |
keypad E | 192 | 0xC0 |
keypad F | 193 | 0xC1 |
keypad XOR | 194 | 0xC2 |
keypad ^ | 195 | 0xC3 |
keypad % | 196 | 0xC4 |
keypad < | 197 | 0xC5 |
keypad > | 198 | 0xC6 |
keypad & | 199 | 0xC7 |
keypad && | 200 | 0xC8 |
keypad | | 201 | 0xC9 |
keypad || | 202 | 0xCA |
keypad : | 203 | 0xCB |
keypad # | 204 | 0xCC |
keypad Space | 205 | 0xCD |
keypad @ | 206 | 0xCE |
keypad ! | 207 | 0xCF |
keypad Memory Store | 208 | 0xD0 |
keypad Memory Recall | 209 | 0xD1 |
keypad Memory Clear | 210 | 0xD2 |
keypad Memory Add | 211 | 0xD3 |
keypad Memory Subtract | 212 | 0xD4 |
keypad Memory Multiply | 213 | 0xD5 |
keypad Memory Divide | 214 | 0xD6 |
keypad +/- | 215 | 0xD7 |
keypad Clear | 216 | 0xD8 |
keypad Clear Entry | 217 | 0xD9 |
keypad Binary | 218 | 0xDA |
keypad Octal | 219 | 0xDB |
keypad Decirnal | 220 | 0xDC |
keypad Hexadecimal | 221 | 0xDD |
Reserved | 222~223 | 0xDE~0xDF |
keypad LeftControl | 224 | 0xE0 |
keypad LeftShift | 225 | 0xE1 |
keypad LeftAlt | 226 | 0xE2 |
keypad Left GUI | 227 | 0xE3 |
keypad RightControl | 228 | 0xE4 |
keypad RightShift | 229 | 0xE5 |
keypad RightAlt | 230 | 0xE6 |
keypad Right GUI | 231 | 0xE7 |
Reserved | 232~65535 | 0xE8~0xFFFF |
虚拟键码表
常数名称 | 十六进制值 | 十进制值 | 对应按键 |
---|
VK_LBUTTON | 0x01 | 1 | 鼠标的左键 |
VK_RBUTTON | 0x02 | 2 | 鼠标的右键 |
VK-CANCEL | 0x03 | 3 | Ctrl+Break |
VK_MBUTTON | 0x04 | 4 | 鼠标的中键 |
VK_MBUTTON1 | 0x05 | 5 | |
VK_MBUTTON2 | 0x06 | 6 | |
Reserved | 0x07 | 7 | 保留 |
VK_BACK | 0x08 | 8 | Backspace键 |
VK_TAB | 0x09 | 9 | Tab键 |
VK_CLEAR | 0x0C | 12 | Clear键 |
VK_RETURN | 0x0D | 13 | Enter键 |
Reserved | 0x0E | 14 | 保留 |
Reserved | 0x0F | 15 | 保留 |
VK_SHIFT | 0x10 | 16 | Shift键 |
VK_CONTROL | 0x11 | 17 | Ctrl键 |
VK_MENU | 0x12 | 18 | Alt键 |
VK_PAUSE | 0x13 | 19 | Pause键 |
VK_CAPITAL | 0x14 | 20 | Caps Lock键 |
VK_KANA \ VK_HANGEUL \ VK_HANGUL | 0x15 | 21 | |
Reserved | 0x16 | 22 | 保留 |
VK_JUNJA | 0x17 | 23 | |
VK_FINAL | 0x18 | 24 | |
VK_HANJA | 0x19 | 25 | |
VK_KANJI | 0x1A | 26 | |
VK_ESCAPE | 0x1B | 27 | Ese键 |
VK_CONVERT | 0x1C | 28 | |
VK_NONCONVERT | 0x1D | 29 | |
VK_ACCEPT | 0x1E | 30 | |
VK_MODECHANGE | 0x1F | 31 | |
VK_SPACE | 0x20 | 32 | Spacebar键 |
VK_PRIOR | 0x21 | 33 | Page Up键 |
VK_NEXT | 0x22 | 34 | Page Domw键 |
VK_END | 0x23 | 35 | End键 |
VK_HOME | 0x24 | 36 | Home键 |
VK_LEFT | 0x25 | 37 | LEFT ARROW 键(←) |
VK_UP | 0x26 | 38 | UP ARROW键(↑) |
VK_RIGHT | 0x27 | 39 | RIGHT ARROW键(→) |
VK_DOWN | 0x28 | 40 | DOWN ARROW键(↓) |
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 | Ins键(Num Lock关闭时的数字键盘0) |
VK_Delete | 0x2E | 46 | Del键(Num Lock关闭时的数字键盘.) |
VK_HELP | 0x2F | 47 | Help键 |
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键 |
Reserved | 0x3A~0x40 | 58~64 | 保留 |
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键 |
VK_LWIN | 0x5B | 91 | 左win键 |
VK_RWIN | 0x5C | 92 | 右win键 |
VK_APPS | 0x5D | 93 | 右Ctrl左边键,点击相当于点击鼠标右键,会弹出快捷菜单 |
| 0x5E | 94 | 保留 |
VK_SLEEP | 0x5F | 95 | 休眠键 |
VK_NUMPAD0 | 0x60 | 96 | 小键盘0键 |
VK_NUMPAD1 | 0x61 | 97 | 小键盘1键 |
VK_NUMPAD2 | 0x62 | 98 | 小键盘2键 |
VK_NUMPAD3 | 0x62 | 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 | 6B | 0x107 | 数字键盘上的+键 |
VK_SEPARATOR | 0x6C | 108 | Separator键 |
VK_SUBTRACT | 0x6D | 109 | 数字键盘上的-键 |
VK_DECIMAL | 0x6E | 110 | 数字键盘上的.键 |
VK_DIVIDE | 0x6F | 111 | 数字键盘上的/键 |
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键 |
VK_NAVIGATION_VIEW | 0x88 | 136 | 保留位 |
VK_NAVIGATION_MENU | 0x89 | 137 | 保留位 |
VK_NAVIGATION_UP | 0x8A | 138 | 保留位 |
VK_NAVIGATION_DOWN | 0x8B | 139 | 保留位 |
VK_NAVIGATION_LEFT | 0x8C | 140 | 保留位 |
VK_NAVIGATION_RIGHT | 0x8D | 141 | 保留位 |
VK_NAVIGATION_ACCEPT | 0x8E | 142 | 保留位 |
VK_NAVIGATION_CANCEL | 0x8F | 143 | 保留位 |
VK_NUMLOCK | 0x90 | 144 | Num Lock 键 |
VK_SCROLL | 0x91 | 145 | Scroll Lock键 |
VK_OEM_NEC_EQUAL \ VK_OEM_FJ_JISHO | 0x92 | 146 | 保留位 |
VK_OEM_FJ_MASSHOU | 0x93 | 147 | 保留位 |
VK_OEM_FJ_TOUROKU | 0x94 | 148 | 保留位 |
VK_OEM_FJ_LOYA | 0x95 | 149 | 保留位 |
VK_OEM_FJ_ROYA | 0x96 | 150 | 保留位 |
Reserved | 0x97~0x9F | 151~159 | 保留位 |
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键 |
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 | 保留位 |
VK_LAUNCH_APP2 | 0xB7 | 183 | 保留位 |
Reserved | 0xB8-0xB9 | 184-185 | 保留位 |
| 0xBA | 186 | :;(分号) |
VK_OEM_PLUS | 0xBB | 187 | +=键 |
VK_OEM_COMMA | 0xBC | 188 | ,键(逗号) |
VK_OEM_MINUS | 0xBD | 189 | -键(减号) |
VK_OEM_PERIOD | 0xBE | 190 | .键(句号) |
| 0xBF | 191 | /键 |
| 0xC0 | 192 | `键(Esc下面) |
Reserved | 0xC1~0xC2 | 193~194 | 保留 |
VK_GAMEPAD_A | 0xC3 | 195 | 手柄A键 |
VK_GAMEPAD_B | 0xC4 | 196 | 手柄B键 |
VK_GAMEPAD_X | 0xC5 | 197 | 手柄X键 |
VK_GAMEPAD_Y | 0xC6 | 198 | 手柄Y键 |
VK_GAMEPAD_RIGHT_SHOULDER | 0xC7 | 199 | 手柄RS键 |
VK_GAMEPAD_LEFT_SHOULDER | 0xC8 | 200 | 手柄LS键 |
VK_GAMEPAD_LEFT_TRIGGER | 0xC9 | 201 | 手柄LT键 |
VK_GAMEPAD_RIGHT_TRIGGER | 0xCA | 202 | 手柄RT键 |
VK_GAMEPAD_DPAD_UP | 0xCB | 203 | 手柄上键 |
VK_GAMEPAD_DPAD_DOWN | 0xCC | 204 | 手柄下键 |
VK_GAMEPAD_DPAD_LEFT | 0xCD | 205 | 手柄左键 |
VK_GAMEPAD_DPAD_RIGHT | 0xCE | 206 | 手柄右键 |
VK_GAMEPAD_MENU | 0xCF | 207 | 手柄菜单键 |
VK_GAMEPAD_VIEW | 0xD0 | 208 | 手柄查看键 |
VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON | 0xD1 | 209 | 手柄左旋杆按键 |
VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON | 0xD2 | 210 | 手柄右旋杆按键 |
VK_GAMEPAD_LEFT_THUMBSTICK_UP | 0xD3 | 211 | 手柄左旋杆上 |
VK_GAMEPAD_LEFT_THUMBSTICK_DOWN | 0xD4 | 212 | 手柄左旋杆下 |
VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT | 0xD5 | 213 | 手柄左旋杆右 |
VK_GAMEPAD_LEFT_THUMBSTICK_LEFT | 0xD6 | 214 | 手柄左旋杆左 |
VK_GAMEPAD_RIGHT_THUMBSTICK_UP | 0xD7 | 215 | 手柄右旋杆上 |
VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN | 0xD8 | 216 | 手柄右旋杆下 |
VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT | 0xD9 | 217 | 手柄右旋杆右 |
VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT | 0xDA | 218 | 手柄右旋杆左 |
| 0xDB | 219 | [键 |
| 0xDC | 220 | \键 |
| 0xDD | 221 | ]键 |
| 0xDE | 222 | ‘键(引号) |