The following table shows the symbolic constant names, hexadecimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order.
Constant/value | Description |
---|---|
VK_LBUTTON 0x01 |
Left mouse button |
VK_RBUTTON 0x02 |
Right mouse button |
VK_CANCEL 0x03 |
Control-break processing |
VK_MBUTTON 0x04 |
Middle mouse button (three-button mouse) |
VK_XBUTTON1 0x05 |
X1 mouse button |
VK_XBUTTON2 0x06 |
X2 mouse button |
- 0x07 |
Undefined |
VK_BACK 0x08 |
BACKSPACE key |
VK_TAB 0x09 |
TAB key |
- 0x0A-0B |
Reserved |
VK_CLEAR 0x0C |
CLEAR key |
VK_RETURN 0x0D |
ENTER key |
- 0x0E-0F |
Undefined |
VK_SHIFT 0x10 |
SHIFT key |
VK_CONTROL 0x11 |
CTRL key |
VK_MENU 0x12 |
ALT key |
VK_PAUSE 0x13 |
PAUSE key |
VK_CAPITAL 0x14 |
CAPS LOCK key |
VK_KANA 0x15 |
IME Kana mode |
VK_HANGUEL 0x15 |
IME Hanguel mode (maintained for compatibility; use VK_HANGUL) |
VK_HANGUL 0x15 |
IME Hangul mode |
- 0x16 |
Undefined |
VK_JUNJA 0x17 |
IME Junja mode |
VK_FINAL 0x18 |
IME final mode |
VK_HANJA 0x19 |
IME Hanja mode |
VK_KANJI 0x19 |
IME Kanji mode |
- 0x1A |
Undefined |
VK_ESCAPE 0x1B |
ESC key |
VK_CONVERT 0x1C |
IME convert |
VK_NONCONVERT 0x1D |
IME nonconvert |
VK_ACCEPT 0x1E |
IME accept |
VK_MODECHANGE 0x1F |
IME mode change request |
VK_SPACE 0x20 |
SPACEBAR |
VK_PRIOR 0x21 |
PAGE UP key |
VK_NEXT 0x22 |
PAGE DOWN key |
VK_END 0x23 |
END key |
VK_HOME 0x24 |
HOME key |
VK_LEFT 0x25 |
LEFT ARROW key |
VK_UP 0x26 |
UP ARROW key |
VK_RIGHT 0x27 |
RIGHT ARROW key |
VK_DOWN 0x28 |
DOWN ARROW key |
VK_SELECT 0x29 |
SELECT key |
VK_PRINT 0x2A |
PRINT key |
VK_EXECUTE 0x2B |
EXECUTE key |
VK_SNAPSHOT 0x2C |
PRINT SCREEN key |
VK_INSERT 0x2D |
INS key |
VK_DELETE 0x2E |
DEL key |
VK_HELP 0x2F |
HELP key |
0x30 |
0 key |
0x31 |
1 key |
0x32 |
2 key |
0x33 |
3 key |
0x34 |
4 key |
0x35 |
5 key |
0x36 |
6 key |
0x37 |
7 key |
0x38 |
8 key |
0x39 |
9 key |
- 0x3A-40 |
Undefined |
0x41 |
A key |
0x42 |
B key |
0x43 |
C key |
0x44 |
D key |
0x45 |
E key |
0x46 |
F key |
0x47 |
G key |
0x48 |
H key |
0x49 |
I key |
0x4A |
J key |
0x4B |
K key |
0x4C |
L key |
0x4D |
M key |
0x4E |
N key |
0x4F |
O key |
0x50 |
P key |
0x51 |
Q key |
0x52 |
R key |
0x53 |
S key |
0x54 |
T key |
0x55 |
U key |
0x56 |
V key |
0x57 |
W key |
0x58 |
X key |
0x59 |
Y key |
0x5A |
Z key |
VK_LWIN 0x5B |
Left Windows key (Natural keyboard) |
VK_RWIN 0x5C |
Right Windows key (Natural keyboard) |
VK_APPS 0x5D |
Applications key (Natural keyboard) |
- 0x5E |
Reserved |
VK_SLEEP 0x5F |
Computer Sleep key |
VK_NUMPAD0 0x60 |
Numeric keypad 0 key |
VK_NUMPAD1 0x61 |
Numeric keypad 1 key |
VK_NUMPAD2 0x62 |
Numeric keypad 2 key |
VK_NUMPAD3 0x63 |
Numeric keypad 3 key |
VK_NUMPAD4 0x64 |
Numeric keypad 4 key |
VK_NUMPAD5 0x65 |
Numeric keypad 5 key |
VK_NUMPAD6 0x66 |
Numeric keypad 6 key |
VK_NUMPAD7 0x67 |
Numeric keypad 7 key |
VK_NUMPAD8 0x68 |
Numeric keypad 8 key |
VK_NUMPAD9 0x69 |
Numeric keypad 9 key |
VK_MULTIPLY 0x6A |
Multiply key |
VK_ADD 0x6B |
Add key |
VK_SEPARATOR 0x6C |
Separator key |
VK_SUBTRACT 0x6D |
Subtract key |
VK_DECIMAL 0x6E |
Decimal key |
VK_DIVIDE 0x6F |
Divide key |
VK_F1 0x70 |
F1 key |
VK_F2 0x71 |
F2 key |
VK_F3 0x72 |
F3 key |
VK_F4 0x73 |
F4 key |
VK_F5 0x74 |
F5 key |
VK_F6 0x75 |
F6 key |
VK_F7 0x76 |
F7 key |
VK_F8 0x77 |
F8 key |
VK_F9 0x78 |
F9 key |
VK_F10 0x79 |
F10 key |
VK_F11 0x7A |
F11 key |
VK_F12 0x7B |
F12 key |
VK_F13 0x7C |
F13 key |
VK_F14 0x7D |
F14 key |
VK_F15 0x7E |
F15 key |
VK_F16 0x7F |
F16 key |
VK_F17 0x80H |
F17 key |
VK_F18 0x81H |
F18 key |
VK_F19 0x82H |
F19 key |
VK_F20 0x83H |
F20 key |
VK_F21 0x84H |
F21 key |
VK_F22 0x85H |
F22 key |
VK_F23 0x86H |
F23 key |
VK_F24 0x87H |
F24 key |
- 0x88-8F |
Unassigned |
VK_NUMLOCK 0x90 |
NUM LOCK key |
VK_SCROLL 0x91 |
SCROLL LOCK key |
0x92-96 |
OEM specific |
- 0x97-9F |
Unassigned |
VK_LSHIFT 0xA0 |
Left SHIFT key |
VK_RSHIFT 0xA1 |
Right SHIFT key |
VK_LCONTROL 0xA2 |
Left CONTROL key |
VK_RCONTROL 0xA3 |
Right CONTROL key |
VK_LMENU 0xA4 |
Left MENU key |
VK_RMENU 0xA5 |
Right MENU key |
VK_BROWSER_BACK 0xA6 |
Browser Back key |
VK_BROWSER_FORWARD 0xA7 |
Browser Forward key |
VK_BROWSER_REFRESH 0xA8 |
Browser Refresh key |
VK_BROWSER_STOP 0xA9 |
Browser Stop key |
VK_BROWSER_SEARCH 0xAA |
Browser Search key |
VK_BROWSER_FAVORITES 0xAB |
Browser Favorites key |
VK_BROWSER_HOME 0xAC |
Browser Start and Home key |
VK_VOLUME_MUTE 0xAD |
Volume Mute key |
VK_VOLUME_DOWN 0xAE |
Volume Down key |
VK_VOLUME_UP 0xAF |
Volume Up key |
VK_MEDIA_NEXT_TRACK 0xB0 |
Next Track key |
VK_MEDIA_PREV_TRACK 0xB1 |
Previous Track key |
VK_MEDIA_STOP 0xB2 |
Stop Media key |
VK_MEDIA_PLAY_PAUSE 0xB3 |
Play/Pause Media key |
VK_LAUNCH_MAIL 0xB4 |
Start Mail key |
VK_LAUNCH_MEDIA_SELECT 0xB5 |
Select Media key |
VK_LAUNCH_APP1 0xB6 |
Start Application 1 key |
VK_LAUNCH_APP2 0xB7 |
Start Application 2 key |
- 0xB8-B9 |
Reserved |
VK_OEM_1 0xBA |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key |
VK_OEM_PLUS 0xBB |
For any country/region, the '+' key |
VK_OEM_COMMA 0xBC |
For any country/region, the ',' key |
VK_OEM_MINUS 0xBD |
For any country/region, the '-' key |
VK_OEM_PERIOD 0xBE |
For any country/region, the '.' key |
VK_OEM_2 0xBF |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key |
VK_OEM_3 0xC0 |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key |
- 0xC1-D7 |
Reserved |
- 0xD8-DA |
Unassigned |
VK_OEM_4 0xDB |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key |
VK_OEM_5 0xDC |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '\|' key |
VK_OEM_6 0xDD |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key |
VK_OEM_7 0xDE |
Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key |
VK_OEM_8 0xDF |
Used for miscellaneous characters; it can vary by keyboard. |
- 0xE0 |
Reserved |
0xE1 |
OEM specific |
VK_OEM_102 0xE2 |
Either the angle bracket key or the backslash key on the RT 102-key keyboard |
0xE3-E4 |
OEM specific |
VK_PROCESSKEY 0xE5 |
IME PROCESS key |
0xE6 |
OEM specific |
VK_PACKET 0xE7 |
Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark inKEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP |
- 0xE8 |
Unassigned |
0xE9-F5 |
OEM specific |
VK_ATTN 0xF6 |
Attn key |
VK_CRSEL 0xF7 |
CrSel key |
VK_EXSEL 0xF8 |
ExSel key |
VK_EREOF 0xF9 |
Erase EOF key |
VK_PLAY 0xFA |
Play key |
VK_ZOOM 0xFB |
Zoom key |
VK_NONAME 0xFC |
Reserved |
VK_PA1 0xFD |
PA1 key |
VK_OEM_CLEAR 0xFE |
Clear key |