Skip to content

Commit edbe7aa

Browse files
authored
Merge pull request odin-lang#5091 from Badaxis/badaxis/windows-scancodes
Adding windows keyboard scan codes
2 parents 4a4294c + d24bac8 commit edbe7aa

File tree

1 file changed

+172
-0
lines changed

1 file changed

+172
-0
lines changed

core/sys/windows/scan_codes.odin

Lines changed: 172 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,172 @@
1+
#+build windows
2+
package sys_windows
3+
4+
// Win32 scan codes for QWERTY layout
5+
// https://learn.microsoft.com/en-us/windows/win32/inputdev/about-keyboard-input#scan-codes
6+
7+
KB_SYS_POWERDOWN :: 0xE05E
8+
KB_SYS_SLEEP :: 0xE05F
9+
KB_SYS_WAKEUP :: 0xE063
10+
KB_ERR_ROLLOVER :: 0x00FF
11+
12+
KB_A :: 0x001E
13+
KB_B :: 0x0030
14+
KB_C :: 0x002E
15+
KB_D :: 0x0020
16+
KB_E :: 0x0012
17+
KB_F :: 0x0021
18+
KB_G :: 0x0022
19+
KB_H :: 0x0023
20+
KB_I :: 0x0017
21+
KB_J :: 0x0024
22+
KB_K :: 0x0025
23+
KB_L :: 0x0026
24+
KB_M :: 0x0032
25+
KB_N :: 0x0031
26+
KB_O :: 0x0018
27+
KB_P :: 0x0019
28+
KB_Q :: 0x0010
29+
KB_R :: 0x0013
30+
KB_S :: 0x001F
31+
KB_T :: 0x0014
32+
KB_U :: 0x0016
33+
KB_V :: 0x002F
34+
KB_W :: 0x0011
35+
KB_X :: 0x002D
36+
KB_Y :: 0x0015
37+
KB_Z :: 0x002C
38+
39+
KB_1_BANG :: 0x0002
40+
KB_2_AT :: 0x0003
41+
KB_3_HASH :: 0x0004
42+
KB_4_DOLLAR :: 0x0005
43+
KB_5_PERCENT :: 0x0006
44+
KB_6_CARET :: 0x0007
45+
KB_7_AMPERSAND :: 0x0008
46+
KB_8_STAR :: 0x0009
47+
KB_9_LEFTBRACKET :: 0x000A
48+
KB_0_RIGHTBRACKET :: 0x000B
49+
50+
KB_RETURN_ENTER :: 0x001C
51+
KB_ESCAPE :: 0x0001
52+
KB_DELETE :: 0x000E
53+
KB_TAB :: 0x000F
54+
KB_SPACEBAR :: 0x0039
55+
KB_DASH_UNDERSCORE :: 0x000C
56+
KB_EQUALS_PLUS :: 0x000D
57+
KB_LEFTBRACE :: 0x001A
58+
KB_RIGHTBRACE :: 0x001B
59+
KB_PIPE_SLASH :: 0x002B
60+
KB_NONUS :: 0x002B
61+
KB_SEMICOLON_COLON :: 0x0027
62+
KB_APOSTR_DOUBLEQUOT :: 0x0028
63+
KB_GRAVEACC_TILDE :: 0x0029
64+
KB_COMMA :: 0x0033
65+
KB_PERIOD :: 0x0034
66+
KB_QUESTIONMARK :: 0x0035
67+
KB_CAPSLOCK :: 0x003A
68+
69+
KB_F1 :: 0x003B
70+
KB_F2 :: 0x003C
71+
KB_F3 :: 0x003D
72+
KB_F4 :: 0x003E
73+
KB_F5 :: 0x003F
74+
KB_F6 :: 0x0040
75+
KB_F7 :: 0x0041
76+
KB_F8 :: 0x0042
77+
KB_F9 :: 0x0043
78+
KB_F10 :: 0x0044
79+
KB_F11 :: 0x0057
80+
KB_F12 :: 0x0058
81+
82+
KB_PRINTSCREEN :: 0xE037
83+
KB_SCROLLLOCK :: 0x0046
84+
KB_PAUSE :: 0xE11D45
85+
KB_INSERT :: 0xE052
86+
KB_HOME :: 0xE047
87+
KB_PAGEUP :: 0xE049
88+
KB_DELETEFORWARD :: 0xE053
89+
KB_END :: 0xE04F
90+
KB_PAGEDOWN :: 0xE051
91+
KB_RIGHTARROW :: 0xE04D
92+
KB_LEFTARROW :: 0xE04B
93+
KB_DOWNARROW :: 0xE050
94+
KB_UPARROW :: 0xE048
95+
96+
KP_NUMLOCK_CLEAR :: 0x0045
97+
KP_FORWARDSLASH :: 0xE035
98+
KP_STAR :: 0x0037
99+
KP_DASH :: 0x004A
100+
KP_PLUS :: 0x004E
101+
KP_ENTER :: 0xE01C
102+
KP_1_END :: 0x004F
103+
KP_2_DOWNARROW :: 0x0050
104+
KP_3_PAGEDN :: 0x0051
105+
KP_4_LEFTARROW :: 0x004B
106+
KP_5 :: 0x004C
107+
KP_6_RIGHTARROW :: 0x004D
108+
KP_7_HOME :: 0x0047
109+
KP_8_UPARROW :: 0x0048
110+
KP_9_PAGEUP :: 0x0049
111+
KP_0_INSERT :: 0x0052
112+
KP_PERIOD :: 0x0053
113+
114+
KB_NONUS_SLASHBAR :: 0x0056
115+
KB_APPLICATION :: 0xE05D
116+
KB_POWER :: 0xE05E
117+
KB_EQUALS :: 0x0059
118+
KB_F13 :: 0x0064
119+
KB_F14 :: 0x0065
120+
KB_F15 :: 0x0066
121+
KB_F16 :: 0x0067
122+
KB_F17 :: 0x0068
123+
KB_F18 :: 0x0069
124+
KB_F19 :: 0x006A
125+
KB_F20 :: 0x006B
126+
KB_F21 :: 0x006C
127+
KB_F22 :: 0x006D
128+
KB_F23 :: 0x006E
129+
KB_F24 :: 0x0076
130+
131+
KP_COMMA :: 0x007E
132+
133+
KB_INTERNATIONAL1 :: 0x0073
134+
KB_INTERNATIONAL2 :: 0x0070
135+
KB_INTERNATIONAL3 :: 0x007D
136+
KB_INTERNATIONAL4 :: 0x0079
137+
KB_INTERNATIONAL5 :: 0x007B
138+
KB_INTERNATIONAL6 :: 0x005C
139+
140+
KB_LANG1 :: 0x0072
141+
KB_LANG2 :: 0x0071
142+
KB_LANG3 :: 0x0078
143+
KB_LANG4 :: 0x0077
144+
KB_LANG5 :: 0x0076
145+
146+
KB_LEFTCONTROL :: 0x001D
147+
KB_LEFTSHIFT :: 0x002A
148+
KB_LEFTALT :: 0x0038
149+
KB_LEFTGUI :: 0xE05B
150+
KB_RIGHTCONTROL :: 0xE01D
151+
KB_RIGHTSHIFT :: 0x0036
152+
KB_RIGHTALT :: 0xE038
153+
KB_RIGHTGUI :: 0xE05C
154+
155+
FN_SCANNEXTTRACK :: 0xE019
156+
FN_SCANPREVTRACK :: 0xE010
157+
FN_STOP :: 0xE024
158+
FN_PLAY_PAUSE :: 0xE022
159+
FN_MUTE :: 0xE020
160+
FN_VOLUMEINC :: 0xE030
161+
FN_VOLUMEDEC :: 0xE02E
162+
FN_AL_CONSUMERCTRLCONFIG :: 0xE06D
163+
FN_AL_EMAILREADER :: 0xE06C
164+
FN_AL_CALCULATOR :: 0xE021
165+
FN_AL_LOCALMACHINEBROWSER :: 0xE06B
166+
FN_AC_SEARCH :: 0xE065
167+
FN_AC_HOME :: 0xE032
168+
FN_AC_BACK :: 0xE06A
169+
FN_AC_FORWARD :: 0xE069
170+
FN_AC_STOP :: 0xE068
171+
FN_AC_REFRESH :: 0xE067
172+
FN_AC_BOOKMARKS :: 0xE066

0 commit comments

Comments
 (0)