Virtual-Key Codes
Reference of Windows Virtual-Key codes used by utils.is_key_pressed and ui_element_t:get_key.
Usage in Lua
Section titled βUsage in Luaβ-- Check if the Left Shift key (0x10 / 16) is heldlocal is_shift = utils.is_key_pressed(0x10)
-- Check if Mouse 4 (VK_XBUTTON1 = 0x05) is pressedif utils.is_key_pressed(0x05) then -- Hotkey activeend
-- Get the virtual key bound to a menu keybind widgetlocal key_code = hotkey_widget:get_key()print(string.format("Bound key code: 0x%02X (%d)", key_code, key_code))Virtual-Key Codes Table
Section titled βVirtual-Key Codes Tableβ| 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 |
