Skip to content

Virtual-Key Codes

Reference of Windows Virtual-Key codes used by utils.is_key_pressed and ui_element_t:get_key.


-- Check if the Left Shift key (0x10 / 16) is held
local is_shift = utils.is_key_pressed(0x10)
-- Check if Mouse 4 (VK_XBUTTON1 = 0x05) is pressed
if utils.is_key_pressed(0x05) then
-- Hotkey active
end
-- Get the virtual key bound to a menu keybind widget
local key_code = hotkey_widget:get_key()
print(string.format("Bound key code: 0x%02X (%d)", key_code, key_code))

Symbolic Constant Hex Value Decimal Mouse / Keyboard Equivalent
VK_LBUTTON 0x01 1 Left mouse button
VK_RBUTTON 0x02 2 Right mouse button
VK_CANCEL 0x03 3 Control-break processing
VK_MBUTTON 0x04 4 Middle mouse button
VK_XBUTTON1 0x05 5 X1 mouse button
VK_XBUTTON2 0x06 6 X2 mouse button
- 0x07 7 Reserved
VK_BACK 0x08 8 Backspace key
VK_TAB 0x09 9 Tab key
- 0x0A-0B - Reserved
VK_CLEAR 0x0C 12 Clear key
VK_RETURN 0x0D 13 Enter key
- 0x0E-0F - Unassigned
VK_SHIFT 0x10 16 Shift key
VK_CONTROL 0x11 17 Ctrl key
VK_MENU 0x12 18 Alt key
VK_PAUSE 0x13 19 Pause key
VK_CAPITAL 0x14 20 Caps lock key
VK_KANA 0x15 21 IME Kana mode
VK_HANGUL 0x15 21 IME Hangul mode
VK_IME_ON 0x16 22 IME On
VK_JUNJA 0x17 23 IME Junja mode
VK_FINAL 0x18 24 IME final mode
VK_HANJA 0x19 25 IME Hanja mode
VK_KANJI 0x19 25 IME Kanji mode
VK_IME_OFF 0x1A 26 IME Off
VK_ESCAPE 0x1B 27 Esc key
VK_CONVERT 0x1C 28 IME convert
VK_NONCONVERT 0x1D 29 IME nonconvert
VK_ACCEPT 0x1E 30 IME accept
VK_MODECHANGE 0x1F 31 IME mode change request
VK_SPACE 0x20 32 Spacebar key
VK_PRIOR 0x21 33 Page up key
VK_NEXT 0x22 34 Page down key
VK_END 0x23 35 End key
VK_HOME 0x24 36 Home key
VK_LEFT 0x25 37 Left arrow key
VK_UP 0x26 38 Up arrow key
VK_RIGHT 0x27 39 Right arrow key
VK_DOWN 0x28 40 Down arrow key
VK_SELECT 0x29 41 Select key
VK_PRINT 0x2A 42 Print key
VK_EXECUTE 0x2B 43 Execute key
VK_SNAPSHOT 0x2C 44 Print screen key
VK_INSERT 0x2D 45 Insert key
VK_DELETE 0x2E 46 Delete key
VK_HELP 0x2F 47 Help key
0 0x30 48 0 key
1 0x31 49 1 key
2 0x32 50 2 key
3 0x33 51 3 key
4 0x34 52 4 key
5 0x35 53 5 key
6 0x36 54 6 key
7 0x37 55 7 key
8 0x38 56 8 key
9 0x39 57 9 key
- 0x3A-40 - Undefined
A 0x41 65 A key
B 0x42 66 B key
C 0x43 67 C key
D 0x44 68 D key
E 0x45 69 E key
F 0x46 70 F key
G 0x47 71 G key
H 0x48 72 H key
I 0x49 73 I key
J 0x4A 74 J key
K 0x4B 75 K key
L 0x4C 76 L key
M 0x4D 77 M key
N 0x4E 78 N key
O 0x4F 79 O key
P 0x50 80 P key
Q 0x51 81 Q key
R 0x52 82 R key
S 0x53 83 S key
T 0x54 84 T key
U 0x55 85 U key
V 0x56 86 V key
W 0x57 87 W key
X 0x58 88 X key
Y 0x59 89 Y key
Z 0x5A 90 Z key
VK_LWIN 0x5B 91 Left Windows logo key
VK_RWIN 0x5C 92 Right Windows logo key
VK_APPS 0x5D 93 Application key
- 0x5E 94 Reserved
VK_SLEEP 0x5F 95 Computer Sleep key
VK_NUMPAD0 0x60 96 Numeric keypad 0 key
VK_NUMPAD1 0x61 97 Numeric keypad 1 key
VK_NUMPAD2 0x62 98 Numeric keypad 2 key
VK_NUMPAD3 0x63 99 Numeric keypad 3 key
VK_NUMPAD4 0x64 100 Numeric keypad 4 key
VK_NUMPAD5 0x65 101 Numeric keypad 5 key
VK_NUMPAD6 0x66 102 Numeric keypad 6 key
VK_NUMPAD7 0x67 103 Numeric keypad 7 key
VK_NUMPAD8 0x68 104 Numeric keypad 8 key
VK_NUMPAD9 0x69 105 Numeric keypad 9 key
VK_MULTIPLY 0x6A 106 Multiply key
VK_ADD 0x6B 107 Add key
VK_SEPARATOR 0x6C 108 Separator key
VK_SUBTRACT 0x6D 109 Subtract key
VK_DECIMAL 0x6E 110 Decimal key
VK_DIVIDE 0x6F 111 Divide key
VK_F1 0x70 112 F1 key
VK_F2 0x71 113 F2 key
VK_F3 0x72 114 F3 key
VK_F4 0x73 115 F4 key
VK_F5 0x74 116 F5 key
VK_F6 0x75 117 F6 key
VK_F7 0x76 118 F7 key
VK_F8 0x77 119 F8 key
VK_F9 0x78 120 F9 key
VK_F10 0x79 121 F10 key
VK_F11 0x7A 122 F11 key
VK_F12 0x7B 123 F12 key
VK_F13 0x7C 124 F13 key
VK_F14 0x7D 125 F14 key
VK_F15 0x7E 126 F15 key
VK_F16 0x7F 127 F16 key
VK_F17 0x80 128 F17 key
VK_F18 0x81 129 F18 key
VK_F19 0x82 130 F19 key
VK_F20 0x83 131 F20 key
VK_F21 0x84 132 F21 key
VK_F22 0x85 133 F22 key
VK_F23 0x86 134 F23 key
VK_F24 0x87 135 F24 key
- 0x88-8F - Reserved
VK_NUMLOCK 0x90 144 Num lock key
VK_SCROLL 0x91 145 Scroll lock key
- 0x92-96 - OEM specific
- 0x97-9F - Unassigned
VK_LSHIFT 0xA0 160 Left Shift key
VK_RSHIFT 0xA1 161 Right Shift key
VK_LCONTROL 0xA2 162 Left Ctrl key
VK_RCONTROL 0xA3 163 Right Ctrl key
VK_LMENU 0xA4 164 Left Alt key
VK_RMENU 0xA5 165 Right Alt key
VK_BROWSER_BACK 0xA6 166 Browser Back key
VK_BROWSER_FORWARD 0xA7 167 Browser Forward key
VK_BROWSER_REFRESH 0xA8 168 Browser Refresh key
VK_BROWSER_STOP 0xA9 169 Browser Stop key
VK_BROWSER_SEARCH 0xAA 170 Browser Search key
VK_BROWSER_FAVORITES 0xAB 171 Browser Favorites key
VK_BROWSER_HOME 0xAC 172 Browser Start and Home key
VK_VOLUME_MUTE 0xAD 173 Volume Mute key
VK_VOLUME_DOWN 0xAE 174 Volume Down key
VK_VOLUME_UP 0xAF 175 Volume Up key
VK_MEDIA_NEXT_TRACK 0xB0 176 Next Track key
VK_MEDIA_PREV_TRACK 0xB1 177 Previous Track key
VK_MEDIA_STOP 0xB2 178 Stop Media key
VK_MEDIA_PLAY_PAUSE 0xB3 179 Play/Pause Media key
VK_LAUNCH_MAIL 0xB4 180 Start Mail key
VK_LAUNCH_MEDIA_SELECT 0xB5 181 Select Media key
VK_LAUNCH_APP1 0xB6 182 Start Application 1 key
VK_LAUNCH_APP2 0xB7 183 Start Application 2 key
- 0xB8-B9 - Reserved
VK_OEM_1 0xBA 186 It can vary by keyboard. For the US ANSI keyboard , the Semiсolon and Colon key
VK_OEM_PLUS 0xBB 187 For any country/region, the Equals and Plus key
VK_OEM_COMMA 0xBC 188 For any country/region, the Comma and Less Than key
VK_OEM_MINUS 0xBD 189 For any country/region, the Dash and Underscore key
VK_OEM_PERIOD 0xBE 190 For any country/region, the Period and Greater Than key
VK_OEM_2 0xBF 191 It can vary by keyboard. For the US ANSI keyboard, the Forward Slash and Question Mark key
VK_OEM_3 0xC0 192 It can vary by keyboard. For the US ANSI keyboard, the Grave Accent and Tilde key
- 0xC1-C2 - Reserved
VK_GAMEPAD_A 0xC3 195 Gamepad A button
VK_GAMEPAD_B 0xC4 196 Gamepad B button
VK_GAMEPAD_X 0xC5 197 Gamepad X button
VK_GAMEPAD_Y 0xC6 198 Gamepad Y button
VK_GAMEPAD_RIGHT_SHOULDER 0xC7 199 Gamepad Right Shoulder button
VK_GAMEPAD_LEFT_SHOULDER 0xC8 200 Gamepad Left Shoulder button
VK_GAMEPAD_LEFT_TRIGGER 0xC9 201 Gamepad Left Trigger button
VK_GAMEPAD_RIGHT_TRIGGER 0xCA 202 Gamepad Right Trigger button
VK_GAMEPAD_DPAD_UP 0xCB 203 Gamepad D-pad Up button
VK_GAMEPAD_DPAD_DOWN 0xCC 204 Gamepad D-pad Down button
VK_GAMEPAD_DPAD_LEFT 0xCD 205 Gamepad D-pad Left button
VK_GAMEPAD_DPAD_RIGHT 0xCE 206 Gamepad D-pad Right button
VK_GAMEPAD_MENU 0xCF 207 Gamepad Menu/Start button
VK_GAMEPAD_VIEW 0xD0 208 Gamepad View/Back button
VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON 0xD1 209 Gamepad Left Thumbstick button
VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON 0xD2 210 Gamepad Right Thumbstick button
VK_GAMEPAD_LEFT_THUMBSTICK_UP 0xD3 211 Gamepad Left Thumbstick up
VK_GAMEPAD_LEFT_THUMBSTICK_DOWN 0xD4 212 Gamepad Left Thumbstick down
VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT 0xD5 213 Gamepad Left Thumbstick right
VK_GAMEPAD_LEFT_THUMBSTICK_LEFT 0xD6 214 Gamepad Left Thumbstick left
VK_GAMEPAD_RIGHT_THUMBSTICK_UP 0xD7 215 Gamepad Right Thumbstick up
VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN 0xD8 216 Gamepad Right Thumbstick down
VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT 0xD9 217 Gamepad Right Thumbstick right
VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT 0xDA 218 Gamepad Right Thumbstick left
VK_OEM_4 0xDB 219 It can vary by keyboard. For the US ANSI keyboard, the Left Brace key
VK_OEM_5 0xDC 220 It can vary by keyboard. For the US ANSI keyboard, the Backslash and Pipe key
VK_OEM_6 0xDD 221 It can vary by keyboard. For the US ANSI keyboard, the Right Brace key
VK_OEM_7 0xDE 222 It can vary by keyboard. For the US ANSI keyboard, the Apostrophe and Double Quotation Mark key
VK_OEM_8 0xDF 223 It can vary by keyboard. For the Canadian CSA keyboard, the Right Ctrl key
- 0xE0 224 Reserved
- 0xE1 225 OEM specific
VK_OEM_102 0xE2 226 It can vary by keyboard. For the European ISO keyboard, the Backslash and Pipe key
- 0xE3-E4 - OEM specific
VK_PROCESSKEY 0xE5 229 IME PROCESS key
- 0xE6 230 OEM specific
VK_PACKET 0xE7 231 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 232 Unassigned
- 0xE9-F5 - OEM specific
VK_ATTN 0xF6 246 Attn key
VK_CRSEL 0xF7 247 CrSel key
VK_EXSEL 0xF8 248 ExSel key
VK_EREOF 0xF9 249 Erase EOF key
VK_PLAY 0xFA 250 Play key
VK_ZOOM 0xFB 251 Zoom key
VK_NONAME 0xFC 252 Reserved
VK_PA1 0xFD 253 PA1 key
VK_OEM_CLEAR 0xFE 254 Clear key