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 |
0x01 | Left mouse button |
VK_RBUTTON |
0x02 | Right mouse button |
VK_CANCEL |
0x03 | Control-break processing |
VK_MBUTTON |
0x04 | Middle mouse button |
VK_XBUTTON1 |
0x05 | X1 mouse button |
VK_XBUTTON2 |
0x06 | X2 mouse button |
- |
0x07 | Reserved |
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 | Unassigned |
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_HANGUL |
0x15 | IME Hangul mode |
VK_IME_ON |
0x16 | IME On |
VK_JUNJA |
0x17 | IME Junja mode |
VK_FINAL |
0x18 | IME final mode |
VK_HANJA |
0x19 | IME Hanja mode |
VK_KANJI |
0x19 | IME Kanji mode |
VK_IME_OFF |
0x1A | IME Off |
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 |
VK_RWIN |
0x5C | Right Windows key |
VK_APPS |
0x5D | Applications key |
- |
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 |
0x80 | F17 key |
VK_F18 |
0x81 | F18 key |
VK_F19 |
0x82 | F19 key |
VK_F20 |
0x83 | F20 key |
VK_F21 |
0x84 | F21 key |
VK_F22 |
0x85 | F22 key |
VK_F23 |
0x86 | F23 key |
VK_F24 |
0x87 | F24 key |
- |
0x88-8F | Reserved |
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 ALT key |
VK_RMENU |
0xA5 | Right ALT 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-DA | Reserved |
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 '" key |
VK_OEM_8 |
0xDF | Used for miscellaneous characters; it can vary by keyboard. |
- |
0xE0 | Reserved |
- |
0xE1 | OEM specific |
VK_OEM_102 |
0xE2 | The <> keys on the US standard keyboard, or the \\| key on the non-US 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 in KEYBDINPUT , 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 |
Remarks
Do not rely on the K_LWIN (0x5B) + VK_F17 (0x80) keys to permanently switch a setting. At shutdown, the system uses these keys to reset various settings, which could include those set by your app.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional [desktop apps only] |
Minimum supported server | Windows 2000 Server [desktop apps only] |
Header | Winuser.h |