# Virtual-Key Codes

The following table shows the symbolic constant names, decimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order.

Symbolic constant name | Value (decimal) | Mouse or keyboard equivalent
--- | --- | ---
VK_LBUTTON | 1 | Left mouse button
VK_RBUTTON | 2 | Right mouse button
VK_CANCEL | 3 | Control-break processing
VK_MBUTTON | 4 | Middle mouse button (three-button mouse)
VK_XBUTTON1 | 5 | Windows 2000: X1 mouse button
VK_XBUTTON2 | 6 | Windows 2000: X2 mouse button
| 7 | Undefined
VK_BACK | 8 | BACKSPACE key
VK_TAB | 9 | TAB key
| 1011 | Reserved
VK_CLEAR | 12 | CLEAR key
VK_RETURN | 13 | ENTER key
| 1415 | Undefined
VK_SHIFT | 16 | SHIFT key
VK_CONTROL | 17 | CTRL key
VK_MENU | 18 | ALT key
VK_PAUSE | 19 | PAUSE key
VK_CAPITAL | 20 | CAPS LOCK key
VK_KANA | 21 | IME Kana mode
VK_HANGUEL | 21 | IME Hanguel mode (maintained for compatibility; use VK_HANGUL)
VK_HANGUL | 21 | IME Hangul mode
| 22 | Undefined
VK_JUNJA | 23 | IME Junja mode
VK_FINAL | 24 | IME final mode
VK_HANJA | 25 | IME Hanja mode
VK_KANJI | 25 | IME Kanji mode
| 26 | Undefined
VK_ESCAPE | 27 | ESC key
VK_CONVERT | 28 | IME convert
VK_NONCONVERT | 29 | IME nonconvert
VK_ACCEPT | 30 | IME accept
VK_MODECHANGE | 31 | IME mode change request
VK_SPACE | 32 | SPACEBAR
VK_PRIOR | 33 | PAGE UP key
VK_NEXT | 34 | PAGE DOWN key
VK_END | 35 | END key
VK_HOME | 36 | HOME key
VK_LEFT | 37 | LEFT ARROW key
VK_UP | 38 | UP ARROW key
VK_RIGHT | 39 | RIGHT ARROW key
VK_DOWN | 40 | DOWN ARROW key
VK_SELECT | 41 | SELECT key
VK_PRINT | 42 | PRINT key
VK_EXECUTE | 43 | EXECUTE key
VK_SNAPSHOT | 44 | PRINT SCREEN key
VK_INSERT | 45 | INS key
VK_DELETE | 46 | DEL key
VK_HELP | 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
| 5864 | Undefined
| 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
VK_LWIN | 91 | Left Windows key (Microsoftฎ Naturalฎ keyboard)
VK_RWIN | 92 | Right Windows key (Natural keyboard)
VK_APPS | 93 | Applications key (Natural keyboard)
| 94 | Reserved
VK_SLEEP | 95 | Computer Sleep key
VK_NUMPAD0 | 96 | Numeric keypad 0 key
VK_NUMPAD1 | 97 | Numeric keypad 1 key
VK_NUMPAD2 | 98 | Numeric keypad 2 key
VK_NUMPAD3 | 99 | Numeric keypad 3 key
VK_NUMPAD4 | 100 | Numeric keypad 4 key
VK_NUMPAD5 | 101 | Numeric keypad 5 key
VK_NUMPAD6 | 102 | Numeric keypad 6 key
VK_NUMPAD7 | 103 | Numeric keypad 7 key
VK_NUMPAD8 | 104 | Numeric keypad 8 key
VK_NUMPAD9 | 105 | Numeric keypad 9 key
VK_MULTIPLY | 106 | Multiply key
VK_ADD | 107 | Add key
VK_SEPARATOR | 108 | Separator key
VK_SUBTRACT | 109 | Subtract key
VK_DECIMAL | 110 | Decimal key
VK_DIVIDE | 111 | Divide key
VK_F1 | 112 | F1 key
VK_F2 | 113 | F2 key
VK_F3 | 114 | F3 key
VK_F4 | 115 | F4 key
VK_F5 | 116 | F5 key
VK_F6 | 117 | F6 key
VK_F7 | 118 | F7 key
VK_F8 | 119 | F8 key
VK_F9 | 120 | F9 key
VK_F10 | 121 | F10 key
VK_F11 | 122 | F11 key
VK_F12 | 123 | F12 key
VK_F13 | 124 | F13 key
VK_F14 | 125 | F14 key
VK_F15 | 126 | F15 key
VK_F16 | 127 | F16 key
VK_F17 | 128H | F17 key
VK_F18 | 129H | F18 key
VK_F19 | 130H | F19 key
VK_F20 | 131H | F20 key
VK_F21 | 132H | F21 key
VK_F22 | 133H | F22 key
VK_F23 | 134H | F23 key
VK_F24 | 135H | F24 key
| 136143 | Unassigned
VK_NUMLOCK | 144 | NUM LOCK key
VK_SCROLL | 145 | SCROLL LOCK key
| 146150 | OEM specific
| 151159 | Unassigned
VK_LSHIFT | 160 | Left SHIFT key
VK_RSHIFT | 161 | Right SHIFT key
VK_LCONTROL | 162 | Left CONTROL key
VK_RCONTROL | 163 | Right CONTROL key
VK_LMENU | 164 | Left MENU key
VK_RMENU | 165 | Right MENU key
VK_BROWSER_BACK | 166 | Windows 2000: Browser Back key
VK_BROWSER_FORWARD | 167 | Windows 2000: Browser Forward key
VK_BROWSER_REFRESH | 168 | Windows 2000: Browser Refresh key
VK_BROWSER_STOP | 169 | Windows 2000: Browser Stop key
VK_BROWSER_SEARCH | 170 | Windows 2000: Browser Search key
VK_BROWSER_FAVORITES | 171 | Windows 2000: Browser Favorites key
VK_BROWSER_HOME | 172 | Windows 2000: Browser Start and Home key
VK_VOLUME_MUTE | 173 | Windows 2000: Volume Mute key
VK_VOLUME_DOWN | 174 | Windows 2000: Volume Down key
VK_VOLUME_UP | 175 | Windows 2000: Volume Up key
VK_MEDIA_NEXT_TRACK | 176 | Windows 2000: Next Track key
VK_MEDIA_PREV_TRACK | 177 | Windows 2000: Previous Track key
VK_MEDIA_STOP | 178 | Windows 2000: Stop Media key
VK_MEDIA_PLAY_PAUSE | 179 | Windows 2000: Play/Pause Media key
VK_LAUNCH_MAIL | 180 | Windows 2000: Start Mail key
VK_LAUNCH_MEDIA_SELECT | 181 | Windows 2000: Select Media key
VK_LAUNCH_APP1 | 182 | Windows 2000: Start Application 1 key
VK_LAUNCH_APP2 | 183 | Windows 2000: Start Application 2 key
| 184-185 | Reserved
VK_OEM_1 | 186 | Windows 2000: For the US standard keyboard, the ';:' key
VK_OEM_PLUS | 187 | Windows 2000: For any country/region, the '+' key
VK_OEM_COMMA | 188 | Windows 2000: For any country/region, the ',' key
VK_OEM_MINUS | 189 | Windows 2000: For any country/region, the '-' key
VK_OEM_PERIOD | 190 | Windows 2000: For any country/region, the '.' key
VK_OEM_2 | 191 | Windows 2000: For the US standard keyboard, the '/?' key
VK_OEM_3 | 192 | Windows 2000: For the US standard keyboard, the '`~' key
| 193215 | Reserved
| 216218 | Unassigned
VK_OEM_4 | 219 | Windows 2000: For the US standard keyboard, the '[{' key
VK_OEM_5 | 220 | Windows 2000: For the US standard keyboard, the '\|' key
VK_OEM_6 | 221 | Windows 2000: For the US standard keyboard, the ']}' key
VK_OEM_7 | 222 | Windows 2000: For the US standard keyboard, the 'single-quote/double-quote' key
VK_OEM_8 | 223 |
| 224 | Reserved
| 225 | OEM specific
VK_OEM_102 | 226 | Windows 2000: Either the angle bracket key or the backslash key on the RT 102-key keyboard
| 227228 | OEM specific
VK_PROCESSKEY | 229 | Windows 95/98, Windows NT 4.0, Windows 2000: IME PROCESS key
| 230 | OEM specific
VK_PACKET | 231 | Windows 2000: 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 in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
| 232 | Unassigned
| 233245 | OEM specific
VK_ATTN | 246 | Attn key
VK_CRSEL | 247 | CrSel key
VK_EXSEL | 248 | ExSel key
VK_EREOF | 249 | Erase EOF key
VK_PLAY | 250 | Play key
VK_ZOOM | 251 | Zoom key
VK_NONAME | 252 | Reserved for future use
VK_PA1 | 253 | PA1 key
VK_OEM_CLEAR | 254 | Clear key