Virtual-Key Codes
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 Left mouse button
0x01
VK_RBUTTON Right mouse button
0x02
VK_CANCEL Control-break processing
0x03
VK_MBUTTON Middle mouse button (three-button mouse)
0x04
VK_XBUTTON1 X1 mouse button
0x05
VK_XBUTTON2 X2 mouse button
0x06
- Undefined
0x07
VK_BACK BACKSPACE key
0x08
VK_TAB TAB key
0x09
- Reserved
0x0A-0B
VK_CLEAR CLEAR key
0x0C
VK_RETURN ENTER key
0x0D
- Undefined
0x0E-0F
VK_SHIFT SHIFT key
0x10
VK_CONTROL CTRL key
0x11
VK_MENU ALT key
0x12
VK_PAUSE PAUSE key
0x13
VK_CAPITAL CAPS LOCK key
0x14
VK_KANA IME Kana mode
0x15
VK_HANGUEL IME Hanguel mode (maintained for compatibility;
0x15 use VK_HANGUL)
VK_HANGUL IME Hangul mode
0x15
- Undefined
0x16
VK_JUNJA IME Junja mode
0x17
VK_FINAL IME final mode
0x18
VK_HANJA IME Hanja mode
0x19
VK_KANJI IME Kanji mode
0x19
- Undefined
0x1A
VK_ESCAPE ESC key
0x1B
VK_CONVERT IME convert
0x1C
VK_NONCONVERT IME nonconvert
0x1D
VK_ACCEPT IME accept
0x1E
VK_MODECHANGE IME mode change request
0x1F
VK_SPACE SPACEBAR
0x20
VK_PRIOR PAGE UP key
0x21
VK_NEXT PAGE DOWN key
0x22
VK_END END key
0x23
VK_HOME HOME key
0x24
VK_LEFT LEFT ARROW key
0x25
VK_UP UP ARROW key
0x26
VK_RIGHT RIGHT ARROW key
0x27
VK_DOWN DOWN ARROW key
0x28
VK_SELECT SELECT key
0x29
VK_PRINT PRINT key
0x2A
VK_EXECUTE EXECUTE key
0x2B
VK_SNAPSHOT PRINT SCREEN key
0x2C
VK_INSERT INS key
0x2D
VK_DELETE DEL key
0x2E
VK_HELP HELP key
0x2F
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
- Undefined
0x3A-40
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 Left Windows key (Natural keyboard)
0x5B
VK_RWIN Right Windows key (Natural keyboard)
0x5C
VK_APPS Applications key (Natural keyboard)
0x5D
- Reserved
0x5E
VK_SLEEP Computer Sleep key
0x5F
VK_NUMPAD0 Numeric keypad 0 key
0x60
VK_NUMPAD1 Numeric keypad 1 key
0x61
VK_NUMPAD2 Numeric keypad 2 key
0x62
VK_NUMPAD3 Numeric keypad 3 key
0x63
VK_NUMPAD4 Numeric keypad 4 key
0x64
VK_NUMPAD5 Numeric keypad 5 key
0x65
VK_NUMPAD6 Numeric keypad 6 key
0x66
VK_NUMPAD7 Numeric keypad 7 key
0x67
VK_NUMPAD8 Numeric keypad 8 key
0x68
VK_NUMPAD9 Numeric keypad 9 key
0x69
VK_MULTIPLY Multiply key
0x6A
VK_ADD Add key
0x6B
VK_SEPARATOR Separator key
0x6C
VK_SUBTRACT Subtract key
0x6D
VK_DECIMAL Decimal key
0x6E
VK_DIVIDE Divide key
0x6F
VK_F1 F1 key
0x70
VK_F2 F2 key
0x71
VK_F3 F3 key
0x72
VK_F4 F4 key
0x73
VK_F5 F5 key
0x74
VK_F6 F6 key
0x75
VK_F7 F7 key
0x76
VK_F8 F8 key
0x77
VK_F9 F9 key
0x78
VK_F10 F10 key
0x79
VK_F11 F11 key
0x7A
VK_F12 F12 key
0x7B
VK_F13 F13 key
0x7C
VK_F14 F14 key
0x7D
VK_F15 F15 key
0x7E
VK_F16 F16 key
0x7F
VK_F17 F17 key
0x80
VK_F18 F18 key
0x81
VK_F19 F19 key
0x82
VK_F20 F20 key
0x83
VK_F21 F21 key
0x84
VK_F22 F22 key
0x85
VK_F23 F23 key
0x86
VK_F24 F24 key
0x87
- Unassigned
0x88-8F
VK_NUMLOCK NUM LOCK key
0x90
VK_SCROLL SCROLL LOCK key
0x91
0x92-96 OEM specific
- Unassigned
0x97-9F
VK_LSHIFT Left SHIFT key
0xA0
VK_RSHIFT Right SHIFT key
0xA1
VK_LCONTROL Left CONTROL key
0xA2
VK_RCONTROL Right CONTROL key
0xA3
VK_LMENU Left MENU key
0xA4
VK_RMENU Right MENU key
0xA5
VK_BROWSER_BACK Browser Back key
0xA6
VK_BROWSER_FORWARD Browser Forward key
0xA7
VK_BROWSER_REFRESH Browser Refresh key
0xA8
VK_BROWSER_STOP Browser Stop key
0xA9
VK_BROWSER_SEARCH Browser Search key
0xAA
VK_BROWSER_FAVORITES Browser Favorites key
0xAB
VK_BROWSER_HOME Browser Start and Home key
0xAC
VK_VOLUME_MUTE Volume Mute key
0xAD
VK_VOLUME_DOWN Volume Down key
0xAE
VK_VOLUME_UP Volume Up key
0xAF
VK_MEDIA_NEXT_TRACK Next Track key
0xB0
VK_MEDIA_PREV_TRACK Previous Track key
0xB1
VK_MEDIA_STOP Stop Media key
0xB2
VK_MEDIA_PLAY_PAUSE Play/Pause Media key
0xB3
VK_LAUNCH_MAIL Start Mail key
0xB4
VK_LAUNCH_MEDIA_SELECT Select Media key
0xB5
VK_LAUNCH_APP1 Start Application 1 key
0xB6
VK_LAUNCH_APP2 Start Application 2 key
0xB7
- Reserved
0xB8-B9
VK_OEM_1 Used for miscellaneous characters; it can vary by
0xBA keyboard.
For the US standard keyboard, the ';:' key
VK_OEM_PLUS For any country/region, the '+' key
0xBB
VK_OEM_COMMA For any country/region, the ',' key
0xBC
VK_OEM_MINUS For any country/region, the '-' key
0xBD
VK_OEM_PERIOD For any country/region, the '.' key
0xBE
VK_OEM_2 Used for miscellaneous characters; it can vary by
0xBF keyboard.
For the US standard keyboard, the '/?' key
VK_OEM_3 Used for miscellaneous characters; it can vary by
0xC0 keyboard.
For the US standard keyboard, the '`~' key
- Reserved
0xC1-D7
- Unassigned
0xD8-DA
VK_OEM_4 Used for miscellaneous characters; it can vary by
0xDB keyboard.
For the US standard keyboard, the '[{' key
VK_OEM_5 Used for miscellaneous characters; it can vary by
0xDC keyboard.
For the US standard keyboard, the '\|' key
VK_OEM_6 Used for miscellaneous characters; it can vary by
0xDD keyboard.
For the US standard keyboard, the ']}' key
VK_OEM_7 Used for miscellaneous characters; it can vary by
0xDE keyboard.
For the US standard keyboard, the 'single-quote/double-
quote' key
VK_OEM_8 Used for miscellaneous characters; it can vary by
0xDF keyboard.
- Reserved
0xE0
0xE1 OEM specific
VK_OEM_102 Either the angle bracket key or the backslash key on the
0xE2 RT 102-key keyboard
0xE3-E4 OEM specific
VK_PROCESSKEY IME PROCESS key
0xE5
0xE6 OEM specific
VK_PACKET Used to pass Unicode characters as if they were
0xE7 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
in KEYBDINPUT, SendInput, WM_KEYDOWN,
and WM_KEYUP
- Unassigned
0xE8
0xE9-F5 OEM specific
VK_ATTN Attn key
0xF6
VK_CRSEL CrSel key
0xF7
VK_EXSEL ExSel key
0xF8
VK_EREOF Erase EOF key
0xF9
VK_PLAY Play key
0xFA
VK_ZOOM Zoom key
0xFB
VK_NONAME Reserved
0xFC
VK_PA1 PA1 key
0xFD
VK_OEM_CLEAR Clear key
0xFE
Requirements
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header Winuser.h
VALUE (DECIMAL) BUTTON
1 left mouse button
2 right mouse button
3 control-break processing
4 middle mouse button
8 backspace key
9 tab key
12 clear key
13 enter key
16 shift key
17 ctrl key
18 alt key
19 pause key
20 caps lock key
27 esc key
32 spacebar
33 page up key
34 page down key
35 end key
36 home key
37 left arrow key
38 up arrow key
39 right arrow key
40 down arrow key
41 select key
42 print key
43 execute key
44 print screen key
45 ins key
46 del key
47 help key
48 0 key
49 1 key
50 2 key
51 3 key
52 4 key
53 5 key
54 6 key
55 7 key
56 8 key
57 9 key
65 a key
66 b key
67 c key
68 d key
69 e key
70 f key
71 g key
72 h key
73 i key
74 j key
75 k key
76 l key
77 m key
78 n key
79 o key
80 p key
81 q key
82 r key
83 s key
84 t key
85 u key
86 v key
87 w key
88 x key
89 y key
90 z key
96 numeric keypad 0 key
97 numeric keypad 1 key
98 numeric keypad 2 key
99 numeric keypad 3 key
100 numeric keypad 4 key
101 numeric keypad 5 key
102 numeric keypad 6 key
103 numeric keypad 7 key
104 numeric keypad 8 key
105 numeric keypad 9 key
106 multiply key
107 add key
108 separator key
109 subtract key
110 decimal key
111 divide key
112 f1 key
113 f2 key
114 f3 key
115 f4 key
116 f5 key
117 f6 key
118 f7 key
119 f8 key
120 f9 key
121 f10 key
122 f11 key
123 f12 key
144 num lock key
145 scroll lock key
160 left shift key
161 right shift key
162 left control key
163 right control key