Windows の Virtual-Key まとめ

Published
Category
Input
Table of contents

概要

Windows の Virtual-Key (いわゆる仮想キー)についてまとめる。

Virtual-Key とは

Windows では PS/2 キーボードや USB キーボードから受け取ったキーコード(それぞれ ScancodeUsage ID)を Virtual-Key code(仮想キーコード)に変換して、さらにそれを設定された変換対応表に従い変換し、最終的な文字などの入力となる。

Virtual-Key のリスト

Table 1, 2, 3 に Virtual-Key のコード、名称、説明、主要配列での対応キーをまとめた。 主要レイアウトの内、ISO (105) 配列は UK 配列を代表例として使用した(各国で違いがありすぎるため)。 AX 配列の日本語固有キーの特殊動作についてはソース (kbdax2.c) が Microsoft の Github や SDK にも含まれていないので、ネットで探してきたものを基に掲載している("kbdax2.c" で検索すれば見つかります)。 おそらくはある時期のサンプルドライバーソースに含まれていたのだろうが、現状公式に入手できない (?) ので信憑性は参考程度、となる点は理解していただきたい。 念のためリンクはあえて張りません。

全て表示すると特大の表になるため、必要な部分のみの表と表示切り替えできるようにした。

Virtual-Keys (partial)
VK code Virtual-Key description Key
dec hex Base East Asia IME Base East Asia IME ANSI (104) ISO (105); typical UK AX JIS (109)
base shift base shift base shift base shift
1 01 VK_LBUTTON - Left mouse button - N/A N/A N/A N/A
2 02 VK_RBUTTON - Right mouse button - N/A N/A N/A N/A
3 03 VK_CANCEL - Control-break processing - N/A N/A N/A N/A
4 04 VK_MBUTTON - Middle mouse button (three-button mouse) - N/A N/A N/A N/A
5 05 VK_XBUTTON1 - X1 mouse button - N/A N/A N/A N/A
6 06 VK_XBUTTON2 - X2 mouse button - N/A N/A N/A N/A
7 07 - - Undefined - N/A N/A N/A N/A
8 08 VK_BACK - BACKSPACE key - Backspace Backspace Backspace Backspace
9 09 VK_TAB - TAB key - Tab Tab Tab Tab
10 0A - - Reserved - N/A N/A N/A N/A
11 0B - - Reserved - N/A N/A N/A N/A
12 0C VK_CLEAR - CLEAR key - N/A N/A N/A N/A
13 0D VK_RETURN - ENTER key - Enter Enter Enter Enter
14 0E - - Undefined - N/A N/A N/A N/A
15 0F - - Undefined - N/A N/A N/A N/A
16 10 VK_SHIFT - SHIFT key - N/A N/A N/A N/A
17 11 VK_CONTROL - CTRL key - N/A N/A N/A N/A
18 12 VK_MENU - ALT key - N/A N/A N/A N/A
19 13 VK_PAUSE - PAUSE key - Pause Pause Pause Pause
20 14 VK_CAPITAL - CAPS LOCK key - CapsLock CapsLock CapsLock Shift + Eisu / CapsLock
21 15 VK_KANA, VK_HANGUL, (VK_HANGUEL) - IME Kana mode, IME Hangul mode (VK_HANGUEL is maintained for compatibility; use VK_HANGUL) - N/A N/A Shift + Ctrl + Eisu / Kana Shift + Ctrl + Katakana / Hiragana
22 16 VK_IME_ON *1 - IME On - N/A N/A N/A N/A
23 17 VK_JUNJA - IME Junja mode - N/A N/A N/A N/A
24 18 VK_FINAL - IME final mode - N/A N/A N/A N/A
25 19 VK_HANJA, VK_KANJI - IME Hanja mode, IME Kanji mode - N/A N/A Kanji Alt + Hankaku / Zenkaku
26 1A VK_IME_OFF *1 - IME Off - N/A N/A N/A N/A
27 1B VK_ESCAPE - ESC key - Esc Esc Esc Esc
28 1C VK_CONVERT - IME convert - N/A N/A Convert Convert
29 1D VK_NONCONVERT - IME nonconvert - N/A N/A NonConvert NonConvert
30 1E VK_ACCEPT - IME accept - N/A N/A N/A N/A
31 1F VK_MODECHANGE - IME mode change request - N/A N/A N/A N/A
32 20 VK_SPACE - SPACEBAR - Space Space Space Space
33 21 VK_PRIOR - PAGE UP key - PgUp PgUp PgUp PgUp
34 22 VK_NEXT - PAGE DOWN key - PgDn PgDn PgDn PgDn
35 23 VK_END - END key - End End End End
36 24 VK_HOME - HOME key - Home Home Home Home
37 25 VK_LEFT - LEFT ARROW key - Left Left Left Left
38 26 VK_UP - UP ARROW key - Up Up Up Up
39 27 VK_RIGHT - RIGHT ARROW key - Right Right Right Right
40 28 VK_DOWN - DOWN ARROW key - Down Down Down Down
41 29 VK_SELECT - SELECT key - N/A N/A N/A N/A
42 2A VK_PRINT - PRINT key - N/A N/A N/A N/A
43 2B VK_EXECUTE - EXECUTE key - N/A N/A N/A N/A
44 2C VK_SNAPSHOT - PRINT SCREEN key - PrintScreen PrintScreen PrintScreen PrintScreen
45 2D VK_INSERT - INS key - Insert Insert Insert Insert
46 2E VK_DELETE - DEL key - Delete Delete Delete Delete
47 2F VK_HELP - HELP key - N/A N/A N/A N/A
48 30 VK_0 - 0 key - 0 ) 0 ) 0 ) 0
49 31 VK_1 - 1 key - 1 ! 1 ! 1 ! 1 !
50 32 VK_2 - 2 key - 2 @ 2 " 2 @ 2 "
51 33 VK_3 - 3 key - 3 # 3 £ 3 # 3 #
52 34 VK_4 - 4 key - 4 $ 4 $ 4 $ 4 $
53 35 VK_5 - 5 key - 5 % 5 % 5 % 5 %
54 36 VK_6 - 6 key - 6 ^ 6 ^ 6 ^ 6 &
55 37 VK_7 - 7 key - 7 & 7 & 7 & 7 '
56 38 VK_8 - 8 key - 8 * 8 * 8 * 8 (
57 39 VK_9 - 9 key - 9 ( 9 ( 9 ( 9 )
58 3A - - Undefined - N/A N/A N/A N/A
59 3B - - Undefined - N/A N/A N/A N/A
60 3C - - Undefined - N/A N/A N/A N/A
61 3D - - Undefined - N/A N/A N/A N/A
62 3E - - Undefined - N/A N/A N/A N/A
63 3F - - Undefined - N/A N/A N/A N/A
64 40 - - Undefined - N/A N/A N/A N/A
65 41 VK_A - A key - a A a A a A a A
66 42 VK_B - B key - b B b B b B b B
67 43 VK_C - C key - c C c C c C c C
68 44 VK_D - D key - d D d D d D d D
69 45 VK_E - E key - e E e E e E e E
70 46 VK_F - F key - f F f F f F f F
71 47 VK_G - G key - g G g G g G g G
72 48 VK_H - H key - h H h H h H h H
73 49 VK_I - I key - i I i I i I i I
74 4A VK_J - J key - j J j J j J j J
75 4B VK_K - K key - k K k K k K k K
76 4C VK_L - L key - l L l L l L l L
77 4D VK_M - M key - m M m M m M m M
78 4E VK_N - N key - n N n N n N n N
79 4F VK_O - O key - o O o O o O o O
80 50 VK_P - P key - p P p P p P p P
81 51 VK_Q - Q key - q Q q Q q Q q Q
82 52 VK_R - R key - r R r R r R r R
83 53 VK_S - S key - s S s S s S s S
84 54 VK_T - T key - t T t T t T t T
85 55 VK_U - U key - u U u U u U u U
86 56 VK_V - V key - v V v V v V v V
87 57 VK_W - W key - w W w W w W w W
88 58 VK_X - X key - x X x X x X x X
89 59 VK_Y - Y key - y Y y Y y Y y Y
90 5A VK_Z - Z key - z Z z Z z Z z Z
91 5B VK_LWIN - Left Windows key (Natural keyboard) - LWin LWin LWin LWin
92 5C VK_RWIN - Right Windows key (Natural keyboard) - RWin RWin RWin RWin
93 5D VK_APPS - Applications key (Natural keyboard) - Menu Menu Menu Menu
94 5E - *2 - Reserved - N/A N/A N/A N/A
95 5F VK_SLEEP - Computer Sleep key - N/A N/A N/A N/A
96 60 VK_NUMPAD0 - Numeric keypad 0 key - KP-0 Insert KP-0 Insert KP-0 Insert KP-0 Insert
97 61 VK_NUMPAD1 - Numeric keypad 1 key - KP-1 End KP-1 End KP-1 End KP-1 End
98 62 VK_NUMPAD2 - Numeric keypad 2 key - KP-2 Down KP-2 Down KP-2 Down KP-2 Down
99 63 VK_NUMPAD3 - Numeric keypad 3 key - KP-3 PgDn KP-3 PgDn KP-3 PgDn KP-3 PgDn
100 64 VK_NUMPAD4 - Numeric keypad 4 key - KP-4 Left KP-4 Left KP-4 Left KP-4 Left
101 65 VK_NUMPAD5 - Numeric keypad 5 key - KP-5 KP-5 KP-5 KP-5
102 66 VK_NUMPAD6 - Numeric keypad 6 key - KP-6 Right KP-6 Right KP-6 Right KP-6 Right
103 67 VK_NUMPAD7 - Numeric keypad 7 key - KP-7 Home KP-7 Home KP-7 Home KP-7 Home
104 68 VK_NUMPAD8 - Numeric keypad 8 key - KP-8 Up KP-8 Up KP-8 Up KP-8 Up
105 69 VK_NUMPAD9 - Numeric keypad 9 key - KP-9 PgUp KP-9 PgUp KP-9 PgUp KP-9 PgUp
106 6A VK_MULTIPLY - Multiply key - KP-* KP-* KP-* KP-*
107 6B VK_ADD - Add key - KP-+ KP-+ KP-+ KP-+
108 6C VK_SEPARATOR - Separator key - KP-Enter KP-Enter KP-Enter KP-Enter
109 6D VK_SUBTRACT - Subtract key - KP—- KP—- KP—- KP—-
110 6E VK_DECIMAL - Decimal key - KP-. Delete KP-. Delete KP-. Delete KP-. Delete
111 6F VK_DIVIDE - Divide key - KP-/ KP-/ KP-/ KP-/
112 70 VK_F1 - F1 key - F1 F1 F1 F1
113 71 VK_F2 - F2 key - F2 F2 F2 F2
114 72 VK_F3 - F3 key - F3 F3 F3 F3
115 73 VK_F4 - F4 key - F4 F4 F4 F4
116 74 VK_F5 - F5 key - F5 F5 F5 F5
117 75 VK_F6 - F6 key - F6 F6 F6 F6
118 76 VK_F7 - F7 key - F7 F7 F7 F7
119 77 VK_F8 - F8 key - F8 F8 F8 F8
120 78 VK_F9 - F9 key - F9 F9 F9 F9
121 79 VK_F10 - F10 key - F10 F10 F10 F10
122 7A VK_F11 - F11 key - F11 F11 F11 F11
123 7B VK_F12 - F12 key - F12 F12 F12 F12
124 7C VK_F13 - F13 key - N/A N/A N/A N/A
125 7D VK_F14 - F14 key - N/A N/A N/A N/A
126 7E VK_F15 - F15 key - N/A N/A N/A N/A
127 7F VK_F16 - F16 key - N/A N/A N/A N/A
128 80 VK_F17 - F17 key - N/A N/A N/A N/A
129 81 VK_F18 - F18 key - N/A N/A N/A N/A
130 82 VK_F19 - F19 key - N/A N/A N/A N/A
131 83 VK_F20 - F20 key - N/A N/A N/A N/A
132 84 VK_F21 - F21 key - N/A N/A N/A N/A
133 85 VK_F22 - F22 key - N/A N/A N/A N/A
134 86 VK_F23 - F23 key - N/A N/A N/A N/A
135 87 VK_F24 - F24 key - N/A N/A N/A N/A
136 88 VK_NAVIGATION_VIEW - Unassigned (UI Navigation) - N/A N/A N/A N/A
137 89 VK_NAVIGATION_MENU - Unassigned (UI Navigation) - N/A N/A N/A N/A
138 8A VK_NAVIGATION_UP - Unassigned (UI Navigation) - N/A N/A N/A N/A
139 8B VK_NAVIGATION_DOWN - Unassigned (UI Navigation) - N/A N/A N/A N/A
140 8C VK_NAVIGATION_LEFT - Unassigned (UI Navigation) - N/A N/A N/A N/A
141 8D VK_NAVIGATION_RIGHT - Unassigned (UI Navigation) - N/A N/A N/A N/A
142 8E VK_NAVIGATION_ACCEPT - Unassigned (UI Navigation) - N/A N/A N/A N/A
143 8F VK_NAVIGATION_CANCEL - Unassigned (UI Navigation) - N/A N/A N/A N/A
144 90 VK_NUMLOCK - NUM LOCK key - NumLock NumLock NumLock NumLock
145 91 VK_SCROLL - SCROLL LOCK key; For the US standard keyboard, None. - ScrollLock ScrollLock ScrollLock ScrollLock
146 92 VK_OEM_NEC_EQUAL (PC-9800), VK_OEM_FJ_JISHO (OASYS) - OEM specific - N/A N/A N/A N/A
147 93 VK_OEM_FJ_MASSHOU - OEM specific - N/A N/A N/A N/A
148 94 VK_OEM_FJ_TOUROKU - OEM specific - N/A N/A N/A N/A
149 95 VK_OEM_FJ_LOYA - OEM specific - N/A N/A N/A N/A
150 96 VK_OEM_FJ_ROYA - OEM specific - N/A N/A N/A N/A
151 97 - - Unassigned - N/A N/A N/A N/A
152 98 - - Unassigned - N/A N/A N/A N/A
153 99 - - Unassigned - N/A N/A N/A N/A
154 9A - - Unassigned - N/A N/A N/A N/A
155 9B - - Unassigned - N/A N/A N/A N/A
156 9C - - Unassigned - N/A N/A N/A N/A
157 9D - - Unassigned - N/A N/A N/A N/A
158 9E - - Unassigned - N/A N/A N/A N/A
159 9F - - Unassigned - N/A N/A N/A N/A
160 A0 VK_LSHIFT - Left SHIFT key - LShift LShift LShift LShift
161 A1 VK_RSHIFT - Right SHIFT key - RShift RShift RShift RShift
162 A2 VK_LCONTROL - Left CONTROL key - LControl LControl LControl LControl
163 A3 VK_RCONTROL - Right CONTROL key - RControl RControl RControl RControl
164 A4 VK_LMENU - Left MENU key - LAlt LAlt LAlt LAlt
165 A5 VK_RMENU - Right MENU key - RAlt (AltGr) *3 N/A RAlt
166 A6 VK_BROWSER_BACK - Browser Back key - N/A N/A N/A N/A
167 A7 VK_BROWSER_FORWARD - Browser Forward key - N/A N/A N/A N/A
168 A8 VK_BROWSER_REFRESH - Browser Refresh key - N/A N/A N/A N/A
169 A9 VK_BROWSER_STOP - Browser Stop key - N/A N/A N/A N/A
170 AA VK_BROWSER_SEARCH - Browser Search key - N/A N/A N/A N/A
171 AB VK_BROWSER_FAVORITES - Browser Favorites key - N/A N/A N/A N/A
172 AC VK_BROWSER_HOME - Browser Start and Home key - N/A N/A N/A N/A
173 AD VK_VOLUME_MUTE - Volume Mute key - N/A N/A N/A N/A
174 AE VK_VOLUME_DOWN - Volume Down key - N/A N/A N/A N/A
175 AF VK_VOLUME_UP - Volume Up key - N/A N/A N/A N/A
176 B0 VK_MEDIA_NEXT_TRACK - Next Track key - N/A N/A N/A N/A
177 B1 VK_MEDIA_PREV_TRACK - Previous Track key - N/A N/A N/A N/A
178 B2 VK_MEDIA_STOP - Stop Media key - N/A N/A N/A N/A
179 B3 VK_MEDIA_PLAY_PAUSE - Play/Pause Media key - N/A N/A N/A N/A
180 B4 VK_LAUNCH_MAIL - Start Mail key - N/A N/A N/A N/A
181 B5 VK_LAUNCH_MEDIA_SELECT - Select Media key - N/A N/A N/A N/A
182 B6 VK_LAUNCH_APP1 - Start Application 1 key - N/A N/A N/A N/A
183 B7 VK_LAUNCH_APP2 - Start Application 2 key - N/A N/A N/A N/A
184 B8 - - Reserved - N/A N/A N/A N/A
185 B9 - - Reserved - N/A N/A N/A N/A
186 BA VK_OEM_1 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key - ; : ; : ; : ; *
187 BB VK_OEM_PLUS - For any country/region, the '+' key - = + = + = + : +
188 BC VK_OEM_COMMA - For any country/region, the ',' key - , < , < , < , <
189 BD VK_OEM_MINUS - For any country/region, the '-' key - - _ - _ - _ - =
190 BE VK_OEM_PERIOD - For any country/region, the '.' key - . > . > . > . >
191 BF VK_OEM_2 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key - / ? / ? / ? / ?
192 C0 VK_OEM_3 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key - ` ~ ' @ ` ~ @ `
193 C1 VK_ABNT_C1 - Reserved (for Brazilian keyboad) - N/A N/A N/A N/A
194 C2 VK_ABNT_C2 - Reserved (for Brazilian keyboad) - N/A N/A N/A N/A
195 C3 VK_GAMEPAD_A - Reserved (Gamepad input) - N/A N/A N/A N/A
196 C4 VK_GAMEPAD_B - Reserved (Gamepad input) - N/A N/A N/A N/A
197 C5 VK_GAMEPAD_X - Reserved (Gamepad input) - N/A N/A N/A N/A
198 C6 VK_GAMEPAD_Y - Reserved (Gamepad input) - N/A N/A N/A N/A
199 C7 VK_GAMEPAD_RIGHT_SHOULDER - Reserved (Gamepad input) - N/A N/A N/A N/A
200 C8 VK_GAMEPAD_LEFT_SHOULDER - Reserved (Gamepad input) - N/A N/A N/A N/A
201 C9 VK_GAMEPAD_LEFT_TRIGGER - Reserved (Gamepad input) - N/A N/A N/A N/A
202 CA VK_GAMEPAD_RIGHT_TRIGGER - Reserved (Gamepad input) - N/A N/A N/A N/A
203 CB VK_GAMEPAD_DPAD_UP - Reserved (Gamepad input) - N/A N/A N/A N/A
204 CC VK_GAMEPAD_DPAD_DOWN - Reserved (Gamepad input) - N/A N/A N/A N/A
205 CD VK_GAMEPAD_DPAD_LEFT - Reserved (Gamepad input) - N/A N/A N/A N/A
206 CE VK_GAMEPAD_DPAD_RIGHT - Reserved (Gamepad input) - N/A N/A N/A N/A
207 CF VK_GAMEPAD_MENU - Reserved (Gamepad input) - N/A N/A N/A N/A
208 D0 VK_GAMEPAD_VIEW - Reserved (Gamepad input) - N/A N/A N/A N/A
209 D1 VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON - Reserved (Gamepad input) - N/A N/A N/A N/A
210 D2 VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON - Reserved (Gamepad input) - N/A N/A N/A N/A
211 D3 VK_GAMEPAD_LEFT_THUMBSTICK_UP - Reserved (Gamepad input) - N/A N/A N/A N/A
212 D4 VK_GAMEPAD_LEFT_THUMBSTICK_DOWN - Reserved (Gamepad input) - N/A N/A N/A N/A
213 D5 VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT - Reserved (Gamepad input) - N/A N/A N/A N/A
214 D6 VK_GAMEPAD_LEFT_THUMBSTICK_LEFT - Reserved (Gamepad input) - N/A N/A N/A N/A
215 D7 VK_GAMEPAD_RIGHT_THUMBSTICK_UP - Reserved (Gamepad input) - N/A N/A N/A N/A
216 D8 VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN - Unassigned (Gamepad input) - N/A N/A N/A N/A
217 D9 VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT - Unassigned (Gamepad input) - N/A N/A N/A N/A
218 DA VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT - Unassigned (Gamepad input) - N/A N/A N/A N/A
219 DB VK_OEM_4 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key - [ { [ { [ { [ {
220 DC VK_OEM_5 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '¦' key - \ | \ | \ | ¥ |
221 DD VK_OEM_6 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key - ] } ] } ] } ] }
222 DE VK_OEM_7 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key - ' " # ~ ' " ' "
223 DF VK_OEM_8 - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, None. By default, this is equivalent to VK_OFF. - N/A ` ¬ N/A N/A
224 E0 - - Reserved - N/A N/A N/A N/A
225 E1 VK_OEM_AX - AX key on Japanese AX keyboard - N/A N/A AX N/A
226 E2 VK_OEM_102 - Either the angle bracket key or the backslash key on the RT 102-key keyboard - \ | < > \ | \ _
227 E3 VK_ICO_HELP - Help key on ICO - N/A N/A N/A N/A
228 E4 VK_ICO_00 - 00 key on ICO - N/A N/A N/A N/A
229 E5 VK_PROCESSKEY - IME PROCESS key - N/A N/A N/A N/A
230 E6 VK_ICO_CLEAR - OEM specific - N/A N/A N/A N/A
231 E7 VK_PACKET - 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 - N/A N/A N/A N/A
232 E8 - - Unassigned - N/A N/A N/A N/A
233 E9 VK_OEM_RESET - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
234 EA VK_OEM_JUMP - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
235 EB VK_OEM_PA1 - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
236 EC VK_OEM_PA2 - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
237 ED VK_OEM_PA3 - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
238 EE VK_OEM_WSCTRL - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
239 EF VK_OEM_CUSEL - OEM specific (Nokia/Ericsson definitions) - N/A N/A N/A N/A
240 F0 VK_OEM_ATTN VK_DBE_ALPHANUMERIC OEM specific (Nokia/Ericsson definitions) Changes the mode to alphanumeric. N/A N/A Alt (+ Shift) (+ Ctrl) + Eisu / Kana Eisu CapsLock
241 F1 VK_OEM_FINISH VK_DBE_KATAKANA OEM specific (Nokia/Ericsson definitions) Changes the mode to Katakana. N/A N/A Eisu / Kana Shift + Katakana / Hiragana
242 F2 VK_OEM_COPY VK_DBE_HIRAGANA OEM specific (Nokia/Ericsson definitions) Changes the mode to Hiragana. N/A N/A Shift + Eisu / Kana Katakana / Hiragana
243 F3 VK_OEM_AUTO VK_DBE_SBCSCHAR *4 OEM specific (Nokia/Ericsson definitions) Changes the mode to single–byte characters. N/A N/A Shift (+ Alt) + Kanji *4 Hankaku / Zenkaku *4
244 F4 VK_OEM_ENLW VK_DBE_DBCSCHAR *4 OEM specific (Nokia/Ericsson definitions) Changes the mode to double–byte characters. N/A N/A Shift (+ Alt) + Kanji *4 Hankaku / Zenkaku *4
245 F5 VK_OEM_BACKTAB VK_DBE_ROMAN *5 OEM specific (Nokia/Ericsson definitions) Changes the mode to Roman characters. N/A N/A Ctrl + Eisu / Kana *5 Alt (+ Shift or Ctrl) + Katakana / Hiragana *5
246 F6 VK_ATTN VK_DBE_NOROMAN *5 Attn key Changes the mode to non–Roman characters. N/A N/A Ctrl + Eisu / Kana *5 Alt (+ Shift or Ctrl) + Katakana / Hiragana *5
247 F7 VK_CRSEL VK_DBE_ENTERWORDREGISTERMODE CrSel key Activates the word registration dialog box. N/A N/A Shift (+ Ctrl) (+ Alt) + NonConvert Ctrl + Alt (+ Shift) + NonConvert
248 F8 VK_EXSEL VK_DBE_ENTERIMECONFIGMODE ExSel key Activates a dialog box for setting up an IME environment. N/A N/A Shift + Ctrl (+ Alt) + Kanji Ctrl + Alt (+ Shift) + Hankaku / Zenkaku
249 F9 VK_EREOF VK_DBE_FLUSHSTRING Erase EOF key Deletes the undetermined string without determining it. N/A N/A N/A N/A
250 FA VK_PLAY VK_DBE_CODEINPUT *6 Play key Changes the mode to code input. N/A N/A Ctrl (+ Alt) + NonConvert *6 Ctrl + Alt (+ Shift) + Eisu / CapsLock *6
251 FB VK_ZOOM VK_DBE_NOCODEINPUT *6 Zoom key Changes the mode to no-code input. N/A N/A Ctrl (+ Alt) + NonConvert *6 Ctrl + Alt (+ Shift) + Eisu / CapsLock *6
252 FC VK_NONAME VK_DBE_DETERMINESTRING Reserved ? N/A N/A N/A N/A
253 FD VK_PA1 VK_DBE_ENTERDLGCONVERSIONMODE PA1 key ? N/A N/A N/A N/A
254 FE VK_OEM_CLEAR - Clear key - N/A N/A N/A N/A
255 FF VK__none_ - - - N/A N/A N/A N/A
Virtual-Keys; Name (all)
VK code Virtual-Key Name Key
dec hex source document ANSI (104) ISO (105); typical UK AX JIS (109)
winuser.h kbd.h Windows 2000 or later Windows Embedded CE 6.0 R3 Manufacture-specific Windows Mobile base shift base shift base shift base shift
- - OEM For East Asian IME NEC PC-9800 Series Nokia/Ericsson Fujitsu/OASYS Various Extended or Enhanced Keyboards
1 01 VK_LBUTTON - VK_LBUTTON VK_LBUTTON - - - - - - - N/A N/A N/A N/A
2 02 VK_RBUTTON - VK_RBUTTON VK_RBUTTON - - - - - - - N/A N/A N/A N/A
3 03 VK_CANCEL - VK_CANCEL VK_CANCEL - - - - - - - N/A N/A N/A N/A
4 04 VK_MBUTTON - VK_MBUTTON VK_MBUTTON - - - - - - - N/A N/A N/A N/A
5 05 VK_XBUTTON1 - VK_XBUTTON1 - - - - - - - - N/A N/A N/A N/A
6 06 VK_XBUTTON2 - VK_XBUTTON2 - - - - - - - - N/A N/A N/A N/A
7 07 - - - - - - - - - - - N/A N/A N/A N/A
8 08 VK_BACK - VK_BACK VK_BACK - - - - - - VK_TBACK Backspace Backspace Backspace Backspace
9 09 VK_TAB - VK_TAB VK_TAB - - - - - - - Tab Tab Tab Tab
10 0A - - - - - - - - - - - N/A N/A N/A N/A
11 0B - - - - - - - - - - - N/A N/A N/A N/A
12 0C VK_CLEAR - VK_CLEAR VK_CLEAR - - - - - - - N/A N/A N/A N/A
13 0D VK_RETURN - VK_RETURN VK_RETURN - - - - - - VK_TACTION Enter Enter Enter Enter
14 0E - - - - - - - - - - - N/A N/A N/A N/A
15 0F - - - - - - - - - - - N/A N/A N/A N/A
16 10 VK_SHIFT - VK_SHIFT VK_SHIFT - - - - - - - N/A N/A N/A N/A
17 11 VK_CONTROL - VK_CONTROL VK_CONTROL - - - - - - - N/A N/A N/A N/A
18 12 VK_MENU - VK_MENU VK_MENU - - - - - - - N/A N/A N/A N/A
19 13 VK_PAUSE - VK_PAUSE VK_PAUSE - - - - - - - Pause Pause Pause Pause
20 14 VK_CAPITAL - VK_CAPITAL VK_CAPITAL - - - - - - - CapsLock CapsLock CapsLock Shift + Eisu / CapsLock
21 15 VK_KANA, VK_HANGUL (VK_HANGUEL) - VK_KANA, VK_HANGUL (VK_HANGUEL) - - - - - - - - N/A N/A Shift + Ctrl + Eisu / Kana Shift + Ctrl + Katakana / Hiragana
22 16 - - VK_IME_ON *1 - - - - - - - - N/A N/A N/A N/A
23 17 VK_JUNJA - VK_JUNJA - - - - - - - - N/A N/A N/A N/A
24 18 VK_FINAL - VK_FINAL - - - - - - - - N/A N/A N/A N/A
25 19 VK_HANJA, VK_KANJI - VK_HANJA, VK_KANJI - - - - - - - - N/A N/A Kanji Alt + Hankaku / Zenkaku
26 1A - - VK_IME_OFF *1 - - - - - - - - N/A N/A N/A N/A
27 1B VK_ESCAPE - VK_ESCAPE VK_ESCAPE - - - - - - - Esc Esc Esc Esc
28 1C VK_CONVERT - VK_CONVERT - - - - - - - - N/A N/A Convert Convert
29 1D VK_NONCONVERT - VK_NONCONVERT - - - - - - - - N/A N/A NonConvert NonConvert
30 1E VK_ACCEPT - VK_ACCEPT - - - - - - - - N/A N/A N/A N/A
31 1F VK_MODECHANGE - VK_MODECHANGE - - - - - - - - N/A N/A N/A N/A
32 20 VK_SPACE - VK_SPACE VK_SPACE - - - - - - - Space Space Space Space
33 21 VK_PRIOR - VK_PRIOR VK_PRIOR - - - - - - - PgUp PgUp PgUp PgUp
34 22 VK_NEXT - VK_NEXT VK_NEXT - - - - - - - PgDn PgDn PgDn PgDn
35 23 VK_END - VK_END VK_END - - - - - - - End End End End
36 24 VK_HOME - VK_HOME VK_HOME - - - - - - - Home Home Home Home
37 25 VK_LEFT - VK_LEFT VK_LEFT - - - - - - VK_TLEFT Left Left Left Left
38 26 VK_UP - VK_UP VK_UP - - - - - - VK_TUP Up Up Up Up
39 27 VK_RIGHT - VK_RIGHT VK_RIGHT - - - - - - VK_TRIGHT Right Right Right Right
40 28 VK_DOWN - VK_DOWN VK_DOWN - - - - - - VK_TDOWN Down Down Down Down
41 29 VK_SELECT - VK_SELECT VK_SELECT - - - - - - - N/A N/A N/A N/A
42 2A VK_PRINT - VK_PRINT - - - - - - - - N/A N/A N/A N/A
43 2B VK_EXECUTE - VK_EXECUTE VK_EXECUTE - - - - - - - N/A N/A N/A N/A
44 2C VK_SNAPSHOT - VK_SNAPSHOT VK_SNAPSHOT - - - - - - - PrintScreen PrintScreen PrintScreen PrintScreen
45 2D VK_INSERT - VK_INSERT VK_INSERT - - - - - - - Insert Insert Insert Insert
46 2E VK_DELETE - VK_DELETE VK_DELETE - - - - - - - Delete Delete Delete Delete
47 2F VK_HELP - VK_HELP VK_HELP - - - - - - - N/A N/A N/A N/A
48 30 VK_0 - VK_0 VK_0 - - - - - - VK_T0 0 ) 0 ) 0 ) 0
49 31 VK_1 - VK_1 VK_1 - - - - - - VK_T1 1 ! 1 ! 1 ! 1 !
50 32 VK_2 - VK_2 VK_2 - - - - - - VK_T2 2 @ 2 " 2 @ 2 "
51 33 VK_3 - VK_3 VK_3 - - - - - - VK_T3 3 # 3 £ 3 # 3 #
52 34 VK_4 - VK_4 VK_4 - - - - - - VK_T4 4 $ 4 $ 4 $ 4 $
53 35 VK_5 - VK_5 VK_5 - - - - - - VK_T5 5 % 5 % 5 % 5 %
54 36 VK_6 - VK_6 VK_6 - - - - - - VK_T6 6 ^ 6 ^ 6 ^ 6 &
55 37 VK_7 - VK_7 VK_7 - - - - - - VK_T7 7 & 7 & 7 & 7 '
56 38 VK_8 - VK_8 VK_8 - - - - - - VK_T8 8 * 8 * 8 * 8 (
57 39 VK_9 - VK_9 VK_9 - - - - - - VK_T9 9 ( 9 ( 9 ( 9 )
58 3A - - - - - - - - - - - N/A N/A N/A N/A
59 3B - - - - - - - - - - - N/A N/A N/A N/A
60 3C - - - - - - - - - - - N/A N/A N/A N/A
61 3D - - - - - - - - - - - N/A N/A N/A N/A
62 3E - - - - - - - - - - - N/A N/A N/A N/A
63 3F - - - - - - - - - - - N/A N/A N/A N/A
64 40 - - - - - - - - - - - N/A N/A N/A N/A
65 41 VK_A - VK_A VK_A - - - - - - - a A a A a A a A
66 42 VK_B - VK_B VK_B - - - - - - - b B b B b B b B
67 43 VK_C - VK_C VK_C - - - - - - - c C c C c C c C
68 44 VK_D - VK_D VK_D - - - - - - - d D d D d D d D
69 45 VK_E - VK_E VK_E - - - - - - - e E e E e E e E
70 46 VK_F - VK_F VK_F - - - - - - - f F f F f F f F
71 47 VK_G - VK_G VK_G - - - - - - - g G g G g G g G
72 48 VK_H - VK_H VK_H - - - - - - - h H h H h H h H
73 49 VK_I - VK_I VK_I - - - - - - - i I i I i I i I
74 4A VK_J - VK_J VK_J - - - - - - - j J j J j J j J
75 4B VK_K - VK_K VK_K - - - - - - - k K k K k K k K
76 4C VK_L - VK_L VK_L - - - - - - - l L l L l L l L
77 4D VK_M - VK_M VK_M - - - - - - - m M m M m M m M
78 4E VK_N - VK_N VK_N - - - - - - - n N n N n N n N
79 4F VK_O - VK_O VK_O - - - - - - - o O o O o O o O
80 50 VK_P - VK_P VK_P - - - - - - - p P p P p P p P
81 51 VK_Q - VK_Q VK_Q - - - - - - - q Q q Q q Q q Q
82 52 VK_R - VK_R VK_R - - - - - - - r R r R r R r R
83 53 VK_S - VK_S VK_S - - - - - - - s S s S s S s S
84 54 VK_T - VK_T VK_T - - - - - - - t T t T t T t T
85 55 VK_U - VK_U VK_U - - - - - - - u U u U u U u U
86 56 VK_V - VK_V VK_V - - - - - - - v V v V v V v V
87 57 VK_W - VK_W VK_W - - - - - - - w W w W w W w W
88 58 VK_X - VK_X VK_X - - - - - - - x X x X x X x X
89 59 VK_Y - VK_Y VK_Y - - - - - - - y Y y Y y Y y Y
90 5A VK_Z - VK_Z VK_Z - - - - - - - z Z z Z z Z z Z
91 5B VK_LWIN - VK_LWIN VK_LWIN - - - - - - VK_THOME LWin LWin LWin LWin
92 5C VK_RWIN - VK_RWIN VK_RWIN - - - - - - - RWin RWin RWin RWin
93 5D VK_APPS - VK_APPS VK_APPS - - - - - - - Menu Menu Menu Menu
94 5E - *2 - - - - - - - - - - N/A N/A N/A N/A
95 5F VK_SLEEP - VK_SLEEP - - - - - - - - N/A N/A N/A N/A
96 60 VK_NUMPAD0 - VK_NUMPAD0 VK_NUMPAD0 - - - - - - - KP-0 Insert KP-0 Insert KP-0 Insert KP-0 Insert
97 61 VK_NUMPAD1 - VK_NUMPAD1 VK_NUMPAD1 - - - - - - - KP-1 End KP-1 End KP-1 End KP-1 End
98 62 VK_NUMPAD2 - VK_NUMPAD2 VK_NUMPAD2 - - - - - - - KP-2 Down KP-2 Down KP-2 Down KP-2 Down
99 63 VK_NUMPAD3 - VK_NUMPAD3 VK_NUMPAD3 - - - - - - - KP-3 PgDn KP-3 PgDn KP-3 PgDn KP-3 PgDn
100 64 VK_NUMPAD4 - VK_NUMPAD4 VK_NUMPAD4 - - - - - - - KP-4 Left KP-4 Left KP-4 Left KP-4 Left
101 65 VK_NUMPAD5 - VK_NUMPAD5 VK_NUMPAD5 - - - - - - - KP-5 KP-5 KP-5 KP-5
102 66 VK_NUMPAD6 - VK_NUMPAD6 VK_NUMPAD6 - - - - - - - KP-6 Right KP-6 Right KP-6 Right KP-6 Right
103 67 VK_NUMPAD7 - VK_NUMPAD7 VK_NUMPAD7 - - - - - - - KP-7 Home KP-7 Home KP-7 Home KP-7 Home
104 68 VK_NUMPAD8 - VK_NUMPAD8 VK_NUMPAD8 - - - - - - - KP-8 Up KP-8 Up KP-8 Up KP-8 Up
105 69 VK_NUMPAD9 - VK_NUMPAD9 VK_NUMPAD9 - - - - - - - KP-9 PgUp KP-9 PgUp KP-9 PgUp KP-9 PgUp
106 6A VK_MULTIPLY - VK_MULTIPLY VK_MULTIPLY - - - - - - - KP-* KP-* KP-* KP-*
107 6B VK_ADD - VK_ADD VK_ADD - - - - - - - KP-+ KP-+ KP-+ KP-+
108 6C VK_SEPARATOR - VK_SEPARATOR VK_SEPARATOR - - VK_OEM_NEC_SEPARATE - - - - KP-Enter KP-Enter KP-Enter KP-Enter
109 6D VK_SUBTRACT - VK_SUBTRACT VK_SUBTRACT - - - - - - - KP—- KP—- KP—- KP—-
110 6E VK_DECIMAL - VK_DECIMAL VK_DECIMAL - - - - - - - KP-. Delete KP-. Delete KP-. Delete KP-. Delete
111 6F VK_DIVIDE - VK_DIVIDE VK_DIVIDE - - - - - - - KP-/ KP-/ KP-/ KP-/
112 70 VK_F1 - VK_F1 VK_F1 - - - - - - VK_TSOFT1 F1 F1 F1 F1
113 71 VK_F2 - VK_F2 VK_F2 - - - - - - VK_TSOFT2 F2 F2 F2 F2
114 72 VK_F3 - VK_F3 VK_F3 - - - - - - VK_TTALK F3 F3 F3 F3
115 73 VK_F4 - VK_F4 VK_F4 - - - - - - VK_TEND F4 F4 F4 F4
116 74 VK_F5 - VK_F5 VK_F5 - - - - - - - F5 F5 F5 F5
117 75 VK_F6 - VK_F6 VK_F6 - - - - - - VK_TVOLUMEUP F6 F6 F6 F6
118 76 VK_F7 - VK_F7 VK_F7 - - - - - - VK_TVOLUMEDOWN F7 F7 F7 F7
119 77 VK_F8 - VK_F8 VK_F8 - - - - - - VK_TSTAR F8 F8 F8 F8
120 78 VK_F9 - VK_F9 VK_F9 - - - - - - KV_TPOUND F9 F9 F9 F9
121 79 VK_F10 - VK_F10 VK_F10 - - - - - - VK_TRECORD F10 F10 F10 F10
122 7A VK_F11 - VK_F11 VK_F11 - - - - - - VK_SYMBOL F11 F11 F11 F11
123 7B VK_F12 - VK_F12 VK_F12 - - - - - - - F12 F12 F12 F12
124 7C VK_F13 - VK_F13 VK_F13 - - - - - - - N/A N/A N/A N/A
125 7D VK_F14 - VK_F14 VK_F14 - - - - - - - N/A N/A N/A N/A
126 7E VK_F15 - VK_F15 VK_F15 - - - - - - VK_END_ALL_DATA_CALLS N/A N/A N/A N/A
127 7F VK_F16 - VK_F16 VK_F16 - - - - - - VK_TSPEAKERPHONE_TOGGLE N/A N/A N/A N/A
128 80 VK_F17 - VK_F17 VK_F17 - - - VK_OEM_F17 - - VK_TFLIP N/A N/A N/A N/A
129 81 VK_F18 - VK_F18 VK_F18 - - - VK_OEM_F18 - - VK_TPOWER N/A N/A N/A N/A
130 82 VK_F19 - VK_F19 VK_F19 - - - VK_OEM_F19 - - VK_REDKEY N/A N/A N/A N/A
131 83 VK_F20 - VK_F20 VK_F20 - - - VK_OEM_F20 - - VK_ROCKER N/A N/A N/A N/A
132 84 VK_F21 - VK_F21 VK_F21 - - - VK_OEM_F21 - - VK_DPAD N/A N/A N/A N/A
133 85 VK_F22 - VK_F22 VK_F22, VK_KEYLOCK - - - VK_OEM_F22 - - VK_KEYLOCK N/A N/A N/A N/A
134 86 VK_F23 - VK_F23 VK_F23 - - - VK_OEM_F23 - - VK_ACTION N/A N/A N/A N/A
135 87 VK_F24 - VK_F24 VK_F24 - - - VK_OEM_F24 - - VK_VOICEDIAL N/A N/A N/A N/A
136 88 VK_NAVIGATION_VIEW - - - - - - - - - - N/A N/A N/A N/A
137 89 VK_NAVIGATION_MENU - - - - - - - - - - N/A N/A N/A N/A
138 8A VK_NAVIGATION_UP - - - - - - - - - - N/A N/A N/A N/A
139 8B VK_NAVIGATION_DOWN - - - - - - - - - - N/A N/A N/A N/A
140 8C VK_NAVIGATION_LEFT - - - - - - - - - - N/A N/A N/A N/A
141 8D VK_NAVIGATION_RIGHT - - - - - - - - - - N/A N/A N/A N/A
142 8E VK_NAVIGATION_ACCEPT - - - - - - - - - - N/A N/A N/A N/A
143 8F VK_NAVIGATION_CANCEL - - - - - - - - - - N/A N/A N/A N/A
144 90 VK_NUMLOCK - VK_NUMLOCK VK_NUMLOCK - - - - - - - NumLock NumLock NumLock NumLock
145 91 VK_SCROLL - VK_SCROLL VK_SCROLL VK_OEM_SCROLL - - - - - - ScrollLock ScrollLock ScrollLock ScrollLock
146 92 VK_OEM_NEC_EQUAL (PC-9800), VK_OEM_FJ_JISHO (OASYS) - () - - - VK_OEM_EQUAL - VK_OEM_FJ_JISHO - - N/A N/A N/A N/A
147 93 VK_OEM_FJ_MASSHOU - () - - - - - VK_OEM_FJ_MASSHOU - - N/A N/A N/A N/A
148 94 VK_OEM_FJ_TOUROKU - () - - - - - VK_OEM_FJ_TOUROKU - - N/A N/A N/A N/A
149 95 VK_OEM_FJ_LOYA - () - - - - - VK_OEM_FJ_LOYA - - N/A N/A N/A N/A
150 96 VK_OEM_FJ_ROYA - () - - - - - VK_OEM_FJ_ROYA - - N/A N/A N/A N/A
151 97 - - - - - - - - - - - N/A N/A N/A N/A
152 98 - - - - - - - - - - - N/A N/A N/A N/A
153 99 - - - - - - - - - - - N/A N/A N/A N/A
154 9A - - - - - - - - - - - N/A N/A N/A N/A
155 9B - - - - - - - - - - - N/A N/A N/A N/A
156 9C - - - - - - - - - - - N/A N/A N/A N/A
157 9D - - - - - - - - - - - N/A N/A N/A N/A
158 9E - - - - - - - - - - - N/A N/A N/A N/A
159 9F - - - - - - - - - - - N/A N/A N/A N/A
160 A0 VK_LSHIFT - VK_LSHIFT VK_LSHIFT - - - - - - - LShift LShift LShift LShift
161 A1 VK_RSHIFT - VK_RSHIFT VK_RSHIFT - - - - - - - RShift RShift RShift RShift
162 A2 VK_LCONTROL - VK_LCONTROL VK_LCONTROL - - - - - - - LControl LControl LControl LControl
163 A3 VK_RCONTROL - VK_RCONTROL VK_RCONTROL - - - - - - - RControl RControl RControl RControl
164 A4 VK_LMENU - VK_LMENU VK_LMENU - - - - - - - LAlt LAlt LAlt LAlt
165 A5 VK_RMENU - VK_RMENU VK_RMENU - - - - - - - RAlt (AltGr) *3 N/A RAlt
166 A6 VK_BROWSER_BACK - VK_BROWSER_BACK - - - - - - - - N/A N/A N/A N/A
167 A7 VK_BROWSER_FORWARD - VK_BROWSER_FORWARD - - - - - - - - N/A N/A N/A N/A
168 A8 VK_BROWSER_REFRESH - VK_BROWSER_REFRESH - - - - - - - - N/A N/A N/A N/A
169 A9 VK_BROWSER_STOP - VK_BROWSER_STOP - - - - - - - - N/A N/A N/A N/A
170 AA VK_BROWSER_SEARCH - VK_BROWSER_SEARCH - - - - - - - - N/A N/A N/A N/A
171 AB VK_BROWSER_FAVORITES - VK_BROWSER_FAVORITES - - - - - - - - N/A N/A N/A N/A
172 AC VK_BROWSER_HOME - VK_BROWSER_HOME - - - - - - - - N/A N/A N/A N/A
173 AD VK_VOLUME_MUTE - VK_VOLUME_MUTE - - - - - - - - N/A N/A N/A N/A
174 AE VK_VOLUME_DOWN - VK_VOLUME_DOWN - - - - - - - - N/A N/A N/A N/A
175 AF VK_VOLUME_UP - VK_VOLUME_UP - - - - - - - - N/A N/A N/A N/A
176 B0 VK_MEDIA_NEXT_TRACK - VK_MEDIA_NEXT_TRACK - - - - - VK_OEM_FJ_000 - - N/A N/A N/A N/A
177 B1 VK_MEDIA_PREV_TRACK - VK_MEDIA_PREV_TRACK - - - - - VK_OEM_FJ_EQUAL - - N/A N/A N/A N/A
178 B2 VK_MEDIA_STOP - VK_MEDIA_STOP - - - - - - - - N/A N/A N/A N/A
179 B3 VK_MEDIA_PLAY_PAUSE - VK_MEDIA_PLAY_PAUSE - - - - - VK_OEM_FJ_00 - - N/A N/A N/A N/A
180 B4 VK_LAUNCH_MAIL - VK_LAUNCH_MAIL - - - - - VK_OEM_OAS_1 - - N/A N/A N/A N/A
181 B5 VK_LAUNCH_MEDIA_SELECT - VK_LAUNCH_MEDIA_SELECT - - - - - VK_OEM_OAS_2 - - N/A N/A N/A N/A
182 B6 VK_LAUNCH_APP1 - VK_LAUNCH_APP1 - - - - - VK_OEM_OAS_3 - - N/A N/A N/A N/A
183 B7 VK_LAUNCH_APP2 - VK_LAUNCH_APP2 - - - - - VK_OEM_OAS_4 - - N/A N/A N/A N/A
184 B8 - - - - - - - - VK_OEM_OAS_5 - - N/A N/A N/A N/A
185 B9 - - - - - - - - VK_OEM_OAS_6 - - N/A N/A N/A N/A
186 BA VK_OEM_1 - VK_OEM_1 () VK_OEM_1 - - - - - - ; : ; : ; : ; *
187 BB VK_OEM_PLUS - VK_OEM_PLUS () VK_OEM_PLUS - - - - - - = + = + = + : +
188 BC VK_OEM_COMMA - VK_OEM_COMMA () VK_OEM_COMMA - - - - - - , < , < , < , <
189 BD VK_OEM_MINUS - VK_OEM_MINUS () VK_OEM_MINUS - - - - - - - _ - _ - _ - =
190 BE VK_OEM_PERIOD - VK_OEM_PERIOD () VK_OEM_PERIOD - - - - - - . > . > . > . >
191 BF VK_OEM_2 - VK_OEM_2 () VK_OEM_2 - - - - - - / ? / ? / ? / ?
192 C0 VK_OEM_3 - VK_OEM_3 () VK_OEM_3 - - - - - - ` ~ ' @ ` ~ @ `
193 C1 - VK_ABNT_C1 - - - - - - VK_OEM_OAS_7 - VK_APP1, VK_APP_FIRST N/A N/A N/A N/A
194 C2 - VK_ABNT_C2 - - - - - - VK_OEM_OAS_8 - VK_APP2 N/A N/A N/A N/A
195 C3 VK_GAMEPAD_A - - - - - - - VK_OEM_OAS_9 - VK_APP3 N/A N/A N/A N/A
196 C4 VK_GAMEPAD_B - - - - - - - VK_OEM_OAS_10 - VK_APP4 N/A N/A N/A N/A
197 C5 VK_GAMEPAD_X - - - - - - - VK_OEM_OAS_11 - VK_APP5 N/A N/A N/A N/A
198 C6 VK_GAMEPAD_Y - - - - - - - VK_OEM_OAS_12 - VK_APP6, VK_APP_LAST N/A N/A N/A N/A
199 C7 VK_GAMEPAD_RIGHT_SHOULDER - - - - - - - VK_OEM_OAS_13 - - N/A N/A N/A N/A
200 C8 VK_GAMEPAD_LEFT_SHOULDER - - - - - - - VK_OEM_OAS_14 - - N/A N/A N/A N/A
201 C9 VK_GAMEPAD_LEFT_TRIGGER - - - - - - - VK_OEM_OAS_15 - - N/A N/A N/A N/A
202 CA VK_GAMEPAD_RIGHT_TRIGGER - - - - - - - VK_OEM_OAS_16 - - N/A N/A N/A N/A
203 CB VK_GAMEPAD_DPAD_UP - - - - - - - VK_OEM_OAS_17 - - N/A N/A N/A N/A
204 CC VK_GAMEPAD_DPAD_DOWN - - - - - - - VK_OEM_OAS_18 - - N/A N/A N/A N/A
205 CD VK_GAMEPAD_DPAD_LEFT - - - - - - - VK_OEM_OAS_19 - - N/A N/A N/A N/A
206 CE VK_GAMEPAD_DPAD_RIGHT - - - - - - - VK_OEM_OAS_20 - - N/A N/A N/A N/A
207 CF VK_GAMEPAD_MENU - - - - - - - VK_OEM_OAS_21 - - N/A N/A N/A N/A
208 D0 VK_GAMEPAD_VIEW - - - - - - - VK_OEM_OAS_22 - - N/A N/A N/A N/A
209 D1 VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON - - - - - - - VK_OEM_OAS_23 - - N/A N/A N/A N/A
210 D2 VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON - - - - - - - VK_OEM_OAS_24 - - N/A N/A N/A N/A
211 D3 VK_GAMEPAD_LEFT_THUMBSTICK_UP - - - - - - - VK_OEM_OAS_25 - - N/A N/A N/A N/A
212 D4 VK_GAMEPAD_LEFT_THUMBSTICK_DOWN - - - - - - - VK_OEM_OAS_26 - - N/A N/A N/A N/A
213 D5 VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT - - - - - - - VK_OEM_OAS_27 - - N/A N/A N/A N/A
214 D6 VK_GAMEPAD_LEFT_THUMBSTICK_LEFT - - - - - - - VK_OEM_OAS_28 - - N/A N/A N/A N/A
215 D7 VK_GAMEPAD_RIGHT_THUMBSTICK_UP - - - - - - - VK_OEM_OAS_29 - - N/A N/A N/A N/A
216 D8 VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN - - - - - - - - - - N/A N/A N/A N/A
217 D9 VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT - - - - - - - - - - N/A N/A N/A N/A
218 DA VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT - - - - - - - - - - N/A N/A N/A N/A
219 DB VK_OEM_4 - VK_OEM_4 () VK_OEM_4 - - - - - - [ { [ { [ { [ {
220 DC VK_OEM_5 - VK_OEM_5 () VK_OEM_5 - - - - - - \ | \ | \ | ¥ |
221 DD VK_OEM_6 - VK_OEM_6 () VK_OEM_6 - - - - - - ] } ] } ] } ] }
222 DE VK_OEM_7 - VK_OEM_7 () VK_OEM_7 - - - - - - ' " # ~ ' " ' "
223 DF VK_OEM_8 - VK_OEM_8 VK_OFF VK_OEM_8 - - - - - - N/A ` ¬ N/A N/A
224 E0 - - - - - - VK_OEM_NEC_DP1 - - - - N/A N/A N/A N/A
225 E1 VK_OEM_AX - () () VK_OEM_AX - VK_OEM_NEC_DP2 - - - - N/A N/A AX N/A
226 E2 VK_OEM_102 - VK_OEM_102 () VK_OEM_102 - VK_OEM_NEC_DP3 - - - - \ | < > \ | \ _
227 E3 VK_ICO_HELP - () () - - VK_OEM_NEC_DP4 - - VK_ICO_HELP - N/A N/A N/A N/A
228 E4 VK_ICO_00 - () () - - - - - VK_ICO_00 - N/A N/A N/A N/A
229 E5 VK_PROCESSKEY - VK_PROCESSKEY - - - - - - - - N/A N/A N/A N/A
230 E6 VK_ICO_CLEAR - () () - - - - - VK_ICO_CLEAR - N/A N/A N/A N/A
231 E7 VK_PACKET - VK_PACKET VK_PACKET - - - - - - - N/A N/A N/A N/A
232 E8 - - - - - - - VK_ERICSSON_BASE - - - N/A N/A N/A N/A
233 E9 VK_OEM_RESET - () () - - - VK_OEM_RESET - - - N/A N/A N/A N/A
234 EA VK_OEM_JUMP - () () - - - VK_OEM_JUMP - - - N/A N/A N/A N/A
235 EB VK_OEM_PA1 - () () - - - VK_OEM_PA1 - - - N/A N/A N/A N/A
236 EC VK_OEM_PA2 - () () - - - VK_OEM_PA2 - - - N/A N/A N/A N/A
237 ED VK_OEM_PA3 - () () - - - VK_OEM_PA3 - - - N/A N/A N/A N/A
238 EE VK_OEM_WSCTRL - () () - - - VK_OEM_WSCTRL - - - N/A N/A N/A N/A
239 EF VK_OEM_CUSEL - () () - - - VK_OEM_CUSEL VK_OEM_FJ_DUMMY - - N/A N/A N/A N/A
240 F0 VK_OEM_ATTN VK_DBE_ALPHANUMERIC () () - VK_DBE_ALPHANUMERIC - VK_OEM_ATTN - - - N/A N/A Alt (+ Shift) (+ Ctrl) + Eisu / Kana Eisu CapsLock
241 F1 VK_OEM_FINISH VK_DBE_KATAKANA () () - VK_DBE_KATAKANA - VK_OEM_FINISH - - - N/A N/A Eisu / Kana Shift + Katakana / Hiragana
242 F2 VK_OEM_COPY VK_DBE_HIRAGANA () () - VK_DBE_HIRAGANA - VK_OEM_COPY - - - N/A N/A Shift + Eisu / Kana Katakana / Hiragana
243 F3 VK_OEM_AUTO VK_DBE_SBCSCHAR *4 () () - VK_DBE_SBCSCHAR *4 - VK_OEM_AUTO - - - N/A N/A Shift (+ Alt) + Kanji *4 Hankaku / Zenkaku *4
244 F4 VK_OEM_ENLW VK_DBE_DBCSCHAR *4 () () - VK_DBE_DBCSCHAR *4 - VK_OEM_ENLW - - - N/A N/A Shift (+ Alt) + Kanji *4 Hankaku / Zenkaku *4
245 F5 VK_OEM_BACKTAB VK_DBE_ROMAN *5 () () - VK_DBE_ROMAN *5 - VK_OEM_BACKTAB - - - N/A N/A Ctrl + Eisu / Kana *5 Alt (+ Shift or Ctrl) + Katakana / Hiragana *5
246 F6 VK_ATTN VK_DBE_NOROMAN *5 VK_ATTN VK_ATTN - VK_DBE_NOROMAN *5 - - - - - N/A N/A Ctrl + Eisu / Kana *5 Alt (+ Shift or Ctrl) + Katakana / Hiragana *5
247 F7 VK_CRSEL VK_DBE_ENTERWORDREGISTERMODE VK_CRSEL VK_CRSEL - VK_DBE_ENTERWORDREGISTERMODE - - - - - N/A N/A Shift (+ Ctrl) (+ Alt) + NonConvert Ctrl + Alt (+ Shift) + NonConvert
248 F8 VK_EXSEL VK_DBE_ENTERIMECONFIGMODE VK_EXSEL VK_EXSEL - VK_DBE_ENTERIMECONFIGMODE - - - - - N/A N/A Shift + Ctrl (+ Alt) + Kanji Ctrl + Alt (+ Shift) + Hankaku / Zenkaku
249 F9 VK_EREOF VK_DBE_FLUSHSTRING VK_EREOF VK_EREOF - VK_DBE_FLUSHSTRING - - - - - N/A N/A N/A N/A
250 FA VK_PLAY VK_DBE_CODEINPUT *6 VK_PLAY VK_PLAY - VK_DBE_CODEINPUT *6 - - - - - N/A N/A Ctrl (+ Alt) + NonConvert *6 Ctrl + Alt (+ Shift) + Eisu / CapsLock *6
251 FB VK_ZOOM VK_DBE_NOCODEINPUT *6 VK_ZOOM VK_ZOOM - VK_DBE_NOCODEINPUT *6 - - - - - N/A N/A Ctrl (+ Alt) + NonConvert *6 Ctrl + Alt (+ Shift) + Eisu / CapsLock *6
252 FC VK_NONAME VK_DBE_DETERMINESTRING VK_NONAME VK_NONAME - - - - - - - N/A N/A N/A N/A
253 FD VK_PA1 VK_DBE_ENTERDLGCONVERSIONMODE VK_PA1 VK_PA1 - - - - - - - N/A N/A N/A N/A
254 FE VK_OEM_CLEAR - VK_OEM_CLEAR VK_OEM_CLEAR - - - - - - - N/A N/A N/A N/A
255 FF - VK__none_ - - - - - - - - - N/A N/A N/A N/A
Virtual-Keys; Description (all)
VK code Virtual-Key Name
dec hex source document
winuser.h kbd.h Windows 2000 or later Windows Embedded CE 6.0 R3 Manufacture-specific Windows Mobile
- - OEM For East Asian IME NEC PC-9800 Series Nokia/Ericsson Fujitsu/OASYS Various Extended or Enhanced Keyboards
1 01 - - Left mouse button Left mouse button - - - - - - -
2 02 - - Right mouse button Right mouse button - - - - - - -
3 03 - - Control-break processing Control-break processing - - - - - - -
4 04 NOT contiguous with L & RBUTTON - Middle mouse button (three-button mouse) Middle mouse button on a three-button mouse - - - - - - -
5 05 NOT contiguous with L & RBUTTON - X1 mouse button Undefined - - - - - - -
6 06 NOT contiguous with L & RBUTTON - X2 mouse button Undefined - - - - - - -
7 07 reserved - Undefined Undefined - - - - - - -
8 08 - - BACKSPACE key BACKSPACE key - - - - - - Back
9 09 - - TAB key TAB key - - - - - - -
10 0A reserved - Reserved Undefined - - - - - - -
11 0B reserved - Reserved Undefined - - - - - - -
12 0C - - CLEAR key CLEAR key - - - - - - -
13 0D - - ENTER key ENTER key - - - - - - Action
14 0E unassigned - Undefined Undefined - - - - - - -
15 0F unassigned - Undefined Undefined - - - - - - -
16 10 - - SHIFT key SHIFT key - - - - - - -
17 11 - - CTRL key CTRL key - - - - - - -
18 12 - - ALT key ALT key - - - - - - -
19 13 - - PAUSE key PAUSE key - - - - - - -
20 14 - - CAPS LOCK key CAPS LOCK key - - - - - - -
21 15 VK_HANGEUL: oldname - should be here for compatibility - IME Kana mode, IME Hangul mode (VK_HANGUEL is maintained for compatibility; use VK_HANGUL) Reserved for Kanji systems - - - - - - -
22 16 unassigned - IME On Reserved for Kanji systems - - - - - - -
23 17 - - IME Junja mode Reserved for Kanji systems - - - - - - -
24 18 - - IME final mode Reserved for Kanji systems - - - - - - -
25 19 - - IME Hanja mode, IME Kanji mode Reserved for Kanji systems - - - - - - -
26 1A unassigned - Undefined Undefined - - - - - - -
27 1B - - ESC key ESC key - - - - - - -
28 1C - - IME convert Reserved for Kanji systems - - - - - - -
29 1D - - IME nonconvert Reserved for Kanji systems - - - - - - -
30 1E - - IME accept Reserved for Kanji systems - - - - - - -
31 1F - - IME mode change request Reserved for Kanji systems - - - - - - -
32 20 - - SPACEBAR SPACEBAR - - - - - - -
33 21 - - PAGE UP key PAGE UP key - - - - - - -
34 22 - - PAGE DOWN key PAGE DOWN key - - - - - - -
35 23 - - END key END key - - - - - - -
36 24 - - HOME key HOME key - - - - - - -
37 25 - - LEFT ARROW key LEFT ARROW key - - - - - - Left
38 26 - - UP ARROW key UP ARROW key - - - - - - Up
39 27 - - RIGHT ARROW key RIGHT ARROW key - - - - - - Right
40 28 - - DOWN ARROW key DOWN ARROW key - - - - - - Down
41 29 - - SELECT key SELECT key - - - - - - -
42 2A - - PRINT key Specific to OEM - - - - - - -
43 2B - - EXECUTE key EXECUTE key - - - - - - -
44 2C - - PRINT SCREEN key PRINT SCREEN key - - - - - - -
45 2D - - INS key INS key - - - - - - -
46 2E - - DEL key DEL key - - - - - - -
47 2F - - HELP key HELP key - - - - - - -
48 30 - - 00 key - - - - - - - -
49 31 - - 1 key - - - - - - - -
50 32 - - 2 key - - - - - - - -
51 33 - - 3 key - - - - - - - -
52 34 - - 4 key - - - - - - - -
53 35 - - 5 key - - - - - - - -
54 36 - - 6 key - - - - - - - -
55 37 - - 7 key - - - - - - - -
56 38 - - 8 key - - - - - - - -
57 39 - - 9 key - - - - - - - -
58 3A unassigned - Undefined Undefined - - - - - - Undefined
59 3B unassigned - Undefined Undefined - - - - - - Undefined
60 3C unassigned - Undefined Undefined - - - - - - Undefined
61 3D unassigned - Undefined Undefined - - - - - - Undefined
62 3E unassigned - Undefined Undefined - - - - - - Undefined
63 3F unassigned - Undefined Undefined - - - - - - Undefined
64 40 unassigned - Undefined Undefined - - - - - - Undefined
65 41 - - A key - - - - - - - -
66 42 - - B key - - - - - - - -
67 43 - - C key - - - - - - - -
68 44 - - D key - - - - - - - -
69 45 - - E key - - - - - - - -
70 46 - - F key - - - - - - - -
71 47 - - G key - - - - - - - -
72 48 - - H key - - - - - - - -
73 49 - - I key - - - - - - - -
74 4A - - J key - - - - - - - -
75 4B - - K key - - - - - - - -
76 4C - - L key - - - - - - - -
77 4D - - M key - - - - - - - -
78 4E - - N key - - - - - - - -
79 4F - - O key - - - - - - - -
80 50 - - P key - - - - - - - -
81 51 - - Q key - - - - - - - -
82 52 - - R key - - - - - - - -
83 53 - - S key - - - - - - - -
84 54 - - T key - - - - - - - -
85 55 - - U key - - - - - - - -
86 56 - - V key - - - - - - - -
87 57 - - W key - - - - - - - -
88 58 - - X key - - - - - - - -
89 59 - - Y key - - - - - - - -
90 5A - - Z key - - - - - - - -
91 5B - - Left Windows key (Natural keyboard) Left Windows key on a Microsoft Natural Keyboard - - - - - - Home screen
92 5C - - Right Windows key (Natural keyboard) Right Windows key on a Microsoft Natural Keyboard - - - - - - -
93 5D - - Applications key (Natural keyboard) Applications key on a Microsoft Natural Keyboard - - - - - - -
94 5E reserved - Reserved Undefined - - - - - - -
95 5F - - Computer Sleep key Undefined - - - - - - -
96 60 - - Numeric keypad 0 key Numeric keypad 0 key - - - - - - -
97 61 - - Numeric keypad 1 key Numeric keypad 1 key - - - - - - -
98 62 - - Numeric keypad 2 key Numeric keypad 2 key - - - - - - -
99 63 - - Numeric keypad 3 key Numeric keypad 3 key - - - - - - -
100 64 - - Numeric keypad 4 key Numeric keypad 4 key - - - - - - -
101 65 - - Numeric keypad 5 key Numeric keypad 5 key - - - - - - -
102 66 - - Numeric keypad 6 key Numeric keypad 6 key - - - - - - -
103 67 - - Numeric keypad 7 key Numeric keypad 7 key - - - - - - -
104 68 - - Numeric keypad 8 key Numeric keypad 8 key - - - - - - -
105 69 - - Numeric keypad 9 key Numeric keypad 9 key - - - - - - -
106 6A - - Multiply key Multiply key - - - - - - -
107 6B - - Add key Add key - - - - - - -
108 6C - - Separator key Separator key - - - - - - -
109 6D - - Subtract key Subtract key - - - - - - -
110 6E - - Decimal key Decimal key - - - - - - -
111 6F - - Divide key Divide key - - - - - - -
112 70 - - F1 key F1 key - - - - - - Softkey 1
113 71 - - F2 key F2 key - - - - - - Softkey 2
114 72 - - F3 key F3 key - - - - - - Talk
115 73 - - F4 key F4 key - - - - - - End
116 74 - - F5 key F5 key - - - - - - -
117 75 - - F6 key F6 key - - - - - - Volume UP
118 76 - - F7 key F7 key - - - - - - Volume Down
119 77 - - F8 key F8 key - - - - - - *
120 78 - - F9 key F9 key - - - - - - #
121 79 - - F10 key F10 key - - - - - - Record
122 7A - - F11 key F11 key - - - - - - Symbol (SYM) key
123 7B - - F12 key F12 key - - - - - - -
124 7C - - F13 key F13 key - - - - - - -
125 7D - - F14 key F14 key - - - - - - -
126 7E - - F15 key F15 key - - - - - - Disconnects all data calls without affection the status of voice calls.
127 7F - - F16 key F16 key - - - - - - Toggles speakerphone on and off.
128 80 - - F17 key F17 key - - - - - - Flip
129 81 - - F18 key F18 key - - - - - - Power
130 82 - - F19 key F19 key - - - - - - Sent by a keypad that has special red function key.
131 83 - - F20 key F20 key - - - - - - Arrow keys came from a Rocker.
132 84 - - F21 key F21 key - - - - - - Arrow keys came from a d-pad.
133 85 - - F22 key F22 key; Key used to lock device. - - - - - - Key used to lock device.
134 86 - - F23 key F23 key - - - - - - Sent with VK_RETURN when doing action on Windows Mobile Classic rockers.
135 87 - - F24 key F24 key - - - - - - Key used to kick off voice dial recognition.
136 88 UI navigation; reserved - Unassigned Unassigned - - - - - - -
137 89 UI navigation; reserved - Unassigned Unassigned - - - - - - -
138 8A UI navigation; reserved - Unassigned Unassigned - - - - - - -
139 8B UI navigation; reserved - Unassigned Unassigned - - - - - - -
140 8C UI navigation; reserved - Unassigned Unassigned - - - - - - -
141 8D UI navigation; reserved - Unassigned Unassigned - - - - - - -
142 8E UI navigation; reserved - Unassigned Unassigned - - - - - - -
143 8F UI navigation; reserved - Unassigned Unassigned - - - - - - -
144 90 - - NUM LOCK key NUM LOCK key - - - - - - -
145 91 - - SCROLL LOCK key; For the US standard keyboard, None. SCROLL LOCK key None - - - - - -
146 92 PC-9800: '='key on numpad OASYS: 'Dictionary' key - OEM specific - - - "=" key on numeric pad - "Dictionary" key - -
147 93 'Unregister word' key - OEM specific - - - - - "Unregister word" key - -
148 94 'Register word' key - OEM specific - - - - - "Register word" key - -
149 95 'Left OYAYUBI' key - OEM specific - - - - - "Left OYAYUBI" key - -
150 96 'Right OYAYUBI' key - OEM specific - - - - - "Right OYAYUBI" key - -
151 97 unassigned - Unassigned - - - - - - - -
152 98 unassigned - Unassigned - - - - - - - -
153 99 unassigned - Unassigned - - - - - - - -
154 9A unassigned - Unassigned - - - - - - - -
155 9B unassigned - Unassigned - - - - - - - -
156 9C unassigned - Unassigned - - - - - - - -
157 9D unassigned - Unassigned - - - - - - - -
158 9E unassigned - Unassigned - - - - - - - -
159 9F unassigned - Unassigned - - - - - - - -
160 A0 - - Left SHIFT key Left SHIFT - - - - - - -
161 A1 - - Right SHIFT key Right SHIFT - - - - - - -
162 A2 - - Left CONTROL key Left CTRL - - - - - - -
163 A3 - - Right CONTROL key Right CTRL - - - - - - -
164 A4 - - Left MENU key Left ALT - - - - - - -
165 A5 - - Right MENU key Right ALT - - - - - - -
166 A6 - - Browser Back key - - - - - - - -
167 A7 - - Browser Forward key - - - - - - - -
168 A8 - - Browser Refresh key - - - - - - - -
169 A9 - - Browser Stop key - - - - - - - -
170 AA - - Browser Search key - - - - - - - -
171 AB - - Browser Favorites key - - - - - - - -
172 AC - - Browser Start and Home key - - - - - - - -
173 AD - - Volume Mute key - - - - - - - -
174 AE - - Volume Down key - - - - - - - -
175 AF - - Volume Up key - - - - - - - -
176 B0 - - Next Track key - - - - - "000" key on numeric pad - -
177 B1 - - Previous Track key - - - - - "=" key on numeric pad - -
178 B2 - - Stop Media key - - - - - - - -
179 B3 - - Play/Pause Media key - - - - - "00" key on numeric pad - -
180 B4 - - Start Mail key - - - - - - - -
181 B5 - - Select Media key - - - - - - - -
182 B6 - - Start Application 1 key - - - - - - - -
183 B7 - - Start Application 2 key - - - - - - - -
184 B8 reserved - Reserved - - - - - - - -
185 B9 reserved - Reserved - - - - - - - -
186 BA ';:' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ';:' key Specific to OEM; reserved. See following tables. ";:" for US - - - - - -
187 BB '+' any country - For any country/region, the '+' key Specific to OEM; reserved. See following tables. "+" any country/region - - - - - -
188 BC ',' any country - For any country/region, the ',' key Specific to OEM; reserved. See following tables. "," any country/region - - - - - -
189 BD '-' any country - For any country/region, the '-' key Specific to OEM; reserved. See following tables. "-" any country/region - - - - - -
190 BE '.' any country - For any country/region, the '.' key Specific to OEM; reserved. See following tables. "." any country/region - - - - - -
191 BF '/?' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '/?' key Specific to OEM; reserved. See following tables. "/?" for US - - - - - -
192 C0 '`~' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '`~' key Specific to OEM; reserved. See following tables. "`~" for US - - - - - -
193 C1 reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
194 C2 reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
195 C3 Gamepad input; reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
196 C4 Gamepad input; reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
197 C5 Gamepad input; reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
198 C6 Gamepad input; reserved - Reserved Unassigned - - - - - - The VK_APP keys will only be recognized by the system if they are wrapped with VK_LWIN. The following code snippet demonstrates how to do this programmatically.
199 C7 Gamepad input; reserved - Reserved Unassigned - - - - - - -
200 C8 Gamepad input; reserved - Reserved Unassigned - - - - - - -
201 C9 Gamepad input; reserved - Reserved Unassigned - - - - - - -
202 CA Gamepad input; reserved - Reserved Unassigned - - - - - - -
203 CB Gamepad input; reserved - Reserved Unassigned - - - - - - -
204 CC Gamepad input; reserved - Reserved Unassigned - - - - - - -
205 CD Gamepad input; reserved - Reserved Unassigned - - - - - - -
206 CE Gamepad input; reserved - Reserved Unassigned - - - - - - -
207 CF Gamepad input; reserved - Reserved Unassigned - - - - - - -
208 D0 Gamepad input; reserved - Reserved Unassigned - - - - - - -
209 D1 Gamepad input; reserved - Reserved Unassigned - - - - - - -
210 D2 Gamepad input; reserved - Reserved Unassigned - - - - - - -
211 D3 Gamepad input; reserved - Reserved Unassigned - - - - - - -
212 D4 Gamepad input; reserved - Reserved Unassigned - - - - - - -
213 D5 Gamepad input; reserved - Reserved Unassigned - - - - - - -
214 D6 Gamepad input; reserved - Reserved Unassigned - - - - - - -
215 D7 Gamepad input; reserved - Reserved Unassigned - - - - - - -
216 D8 Gamepad input; reserved - Unassigned Unassigned - - - - - - -
217 D9 Gamepad input; reserved - Unassigned Unassigned - - - - - - -
218 DA Gamepad input; reserved - Unassigned Unassigned - - - - - - -
219 DB '[{' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '[{' key Specific to OEM; reserved. See following tables. "[{" for US - - - - - -
220 DC '¦' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the '¦' key Specific to OEM; reserved. See following tables. "]}" for US - - - - - -
221 DD ']}' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the ']}' key Specific to OEM; reserved. See following tables. "¦" for US - - - - - -
222 DE ''"' for US - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, the 'single-quote/double-quote' key Specific to OEM; reserved. See following tables. "'"" for US - - - - - -
223 DF - - Used for miscellaneous characters; it can vary by keyboard. For the US standard keyboard, None. By default, this is equivalent to VK_OFF. Used to power the device on and off. No keyboard equivalent. None. By default, this is equivalent to VK_OFF. - - - - - -
224 E0 reserved - Reserved - - - - - - - -
225 E1 'AX' KEY ON JAPANESE AX KBD - OEM specific Specific to OEM AX key on Japanese AX keyboard - - - - - -
226 E2 "<>" OR "¦" ON RT 102-KEY KBD. - Either the angle bracket key or the backslash key on the RT 102-key keyboard Specific to OEM "<>" or "¦" on RT 102-key keyboard - - - - - -
227 E3 Help key on ICO - OEM specific Specific to OEM - - - - - Help key on ICO -
228 E4 00 key on ICO - OEM specific Specific to OEM - - - - - 00 key on ICO -
229 E5 - - IME PROCESS key Unassigned - - - - - - -
230 E6 - - OEM specific Specific to OEM - - - - - - -
231 E7 - - 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 Used to pass Unicode characters as if they were keystrokes. If VK_PACKET is used with SendInput, then the Unicode character to be delivered should be placed into the lower 16 bites of the scan code. If a keyboard message is removed from the message is removed from the message queue and the virtual key is VK_PACKET, then the Unicode character will be the upper 16 bits of the lparam. - - - - - - -
232 E8 unassigned - Unassigned Unassigned - - - - - - -
233 E9 Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
234 EA Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
235 EB Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
236 EC Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
237 ED Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
238 EE Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
239 EF Nokia/Ericsson definitions - OEM specific Specific to OEM - - - - - - -
240 F0 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to alphanumeric. - - - - -
241 F1 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to Katakana. - - - - -
242 F2 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to Hiragana. - - - - -
243 F3 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to single–byte characters. - - - - -
244 F4 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to double–byte characters. - - - - -
245 F5 Nokia/Ericsson definitions - OEM specific Specific to OEM - Changes the mode to Roman characters. - - - - -
246 F6 - - Attn key ATTN key - Changes the mode to non–Roman characters. - - - - -
247 F7 - - CrSel key CRSEL key - Activates the word registration dialog box. - - - - -
248 F8 - - ExSel key EXSEL key - Activates a dialog box for setting up an IME environment. - - - - -
249 F9 - - Erase EOF key Erase EOF key - Deletes the undetermined string without determining it. - - - - -
250 FA - - Play key PLAY key - Changes the mode to code input. - - - - -
251 FB - - Zoom key ZOOM key - Changes the mode to no-code input. - - - - -
252 FC - - Reserved Reserved for fuure use - - - - - - -
253 FD - - PA1 key PA1 - - - - - - -
254 FE - - Clear key CLEAR - - - - - - -
255 FF reserved - (NA) - - - - - - - -

*1: VK_IME_ON, VK_IME_OFF

Microsoft の最新の資料では存在することになっているが winuser.hkbd.h にも定義がなく存在しているのか定かではない。 公式以外の資料でもほとんど存在を確認できず、よくわからない。 新しめのコードなのか、とも思ったが使っている番地が若いのでそれもしっくりこず……。

*2: VK_POWER

kbd.h では存在している風な扱いになっているが、なぜか winuser.h や Microsoft の資料では reserved 扱いで定義されていない Virtual-Key. 一応 Microsoft のサイトで、.NET Framework の reference の中にその存在を確認できるが、その程度なので現在も実際にシステム内で使われているのかは定かではない。 もしかしたら電源に関わるキーなので処理が変わった……?

*3: AltGr キー

AltGr キーは実際はそういうキーコードを発生しているのではなく、内部的には LCtrl + RAlt のコンビネーションとなっている。

*4: VK_DBE_SBCSCHAR, VK_DBE_DBCSCHAR

いわゆる JIS (109) 配列での 半角/全角 キーで発生する Virtual-Key で、toggle で発生する。 そのため対応するキーは両 Virtual-Key で同一となる。 AX 配列ではキーコンビネーションで発生する。

*5: VK_DBE_ROMAN, VK_DBE_NOROMAN

JIS (109), AX 配列共にキーコンビネーションで発生する。こちらも toggle。 MS-IME を使っている場合、キーとしてはカナロックの切替が対応するが、内部で Virtual-Key を見ているのか Scancode を見ているのか(つまりこの Virtual-Key を無視しているのか)は不明。

*6: VK_DBE_CODEINPUT, VK_DBE_NOCODEINPUT

JIS (109), AX 配列共にキーコンビネーションで発生する。こちらも toggle。 MS-IME を使っている場合、標準では対応する機能は無いように見える。また設定でもこのキーコンビネーションに個別の機能の割り当ては出来ないので実質使い道がない。 少なくともこの Virtual-Key が発生するところまでは確認できた。

Windows で定義されている Scancode to Virtal-Key の対応表

Table 4, 5 に Scancode Set 1 から Virtual-Key への変換対応表を載せる。 内容としては Windows SDK の kbd.h に定義されている内容となり、type は同ファイル内で定義されているが group は私が個人的に定義した番号になるので後述する。 また Virtual-Key 名称は本来先頭に付くべき VK_ を省略した表記となっているので適宜読み替えること(表の基となって kbd.h 内の表記のままになっているので)。 なお Windows SDK は ver 10.0.17763.0 を使用した(基本的に更新があるようなファイルではないと思うが念のため)。

こちらも全て表示すると特大の表になるため、必要な部分のみの表と表示切り替えできるようにした。

Scancode to Virtual-Key (partial)
Scancode Set 1 (hex) Virtual-Key name
group 1 group 2
type 4 type 8 type 16
00 _none_ _none_ _none_
01 ESCAPE ESCAPE ESCAPE
02 '1' '1' '1'
03 '2' '2' '2'
04 '3' '3' '3'
05 '4' '4' '4'
06 '5' '5' '5'
07 '6' '6' '6'
08 '7' '7' '7'
09 '8' '8' '8'
0A '9' '9' '9'
0B '0' '0' '0'
0C OEM_MINUS OEM_MINUS OEM_MINUS
0D OEM_PLUS OEM_7 OEM_PLUS
0E BACK BACK BACK
0F TAB TAB TAB
10 'Q' 'Q' 'Q'
11 'W' 'W' 'W'
12 'E' 'E' 'E'
13 'R' 'R' 'R'
14 'T' 'T' 'T'
15 'Y' 'Y' 'Y'
16 'U' 'U' 'U'
17 'I' 'I' 'I'
18 'O' 'O' 'O'
19 'P' 'P' 'P'
1A OEM_4 OEM_3 OEM_4
1B OEM_6 OEM_4 OEM_6
1C RETURN RETURN RETURN
1D LCONTROL LCONTROL LCONTROL
1E 'A' 'A' 'A'
1F 'S' 'S' 'S'
20 'D' 'D' 'D'
21 'F' 'F' 'F'
22 'G' 'G' 'G'
23 'H' 'H' 'H'
24 'J' 'J' 'J'
25 'K' 'K' 'K'
26 'L' 'L' 'L'
27 OEM_1 OEM_PLUS OEM_1
28 OEM_7 OEM_1 OEM_7
29 OEM_3 DBE_SBCSCHAR OEM_3
2A LSHIFT LSHIFT LSHIFT
2B OEM_5 OEM_6 OEM_5
2C 'Z' 'Z' 'Z'
2D 'X' 'X' 'X'
2E 'C' 'C' 'C'
2F 'V' 'V' 'V'
30 'B' 'B' 'B'
31 'N' 'N' 'N'
32 'M' 'M' 'M'
33 OEM_COMMA OEM_COMMA OEM_COMMA
34 OEM_PERIOD OEM_PERIOD OEM_PERIOD
35 OEM_2 OEM_2 OEM_2
36 RSHIFT RSHIFT RSHIFT
37 MULTIPLY MULTIPLY MULTIPLY
38 LMENU LMENU LMENU
39 ' ' ' ' ' '
3A CAPITAL DBE_ALPHANUMERIC CAPITAL
3B F1 F1 F1
3C F2 F2 F2
3D F3 F3 F3
3E F4 F4 F4
3F F5 F5 F5
40 F6 F6 F6
41 F7 F7 F7
42 F8 F8 F8
43 F9 F9 F9
44 F10 F10 F10
45 NUMLOCK NUMLOCK NUMLOCK
46 SCROLL SCROLL SCROLL
47 HOME HOME HOME
48 UP UP UP
49 PRIOR PRIOR PRIOR
4A SUBTRACT SUBTRACT SUBTRACT
4B LEFT LEFT LEFT
4C CLEAR CLEAR CLEAR
4D RIGHT RIGHT RIGHT
4E ADD ADD ADD
4F END END END
50 DOWN DOWN DOWN
51 NEXT NEXT NEXT
52 INSERT INSERT INSERT
53 DELETE DELETE DELETE
54 SNAPSHOT SNAPSHOT SNAPSHOT
55 _none_ _none_ _none_
56 OEM_102 _none_ OEM_102
57 F11 F11 F11
58 F12 F12 F12
59 CLEAR CLEAR CLEAR
5A OEM_WSCTRL NONAME NONCONVERT
5B OEM_FINISH NONAME CONVERT
5C OEM_JUMP NONAME OEM_AX
5D EREOF EREOF EREOF
5E OEM_BACKTAB _none_ _none_
5F OEM_AUTO NONAME NONAME
60 _none_ _none_ _none_
61 _none_ _none_ _none_
62 ZOOM _none_ _none_
63 HELP _none_ _none_
64 F13 F13 F13
65 F14 F14 F14
66 F15 F15 F15
67 F16 F16 F16
68 F17 F17 F17
69 F18 F18 F18
6A F19 F19 F19
6B F20 F20 F20
6C F21 F21 F21
6D F22 F22 F22
6E F23 F23 F23
6F OEM_PA3 _none_ _none_
70 _none_ DBE_HIRAGANA _none_
71 OEM_RESET _none_ _none_
72 _none_ _none_ _none_
73 ABNT_C1 OEM_102 _none_
74 _none_ _none_ _none_
75 _none_ _none_ _none_
76 F24 F24 F24
77 _none_ _none_ _none_
78 _none_ _none_ _none_
79 _none_ CONVERT _none_
7A _none_ _none_ _none_
7B OEM_PA1 NONCONVERT _none_
7C TAB TAB TAB
7D _none_ OEM_5 _none_
7E ABNT_C2 ABNT_C2 ABNT_C2
7F OEM_PA2 OEM_PA2 OEM_PA2
E0 0F (NA) (NA) (NA)
E0 10 MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK
E0 19 MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK
E0 1C RETURN RETURN RETURN
E0 1D RCONTROL RCONTROL DBE_KATAKANA
E0 20 VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE
E0 21 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2
E0 22 MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE
E0 24 MEDIA_STOP MEDIA_STOP MEDIA_STOP
E0 2E VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN
E0 30 VOLUME_UP VOLUME_UP VOLUME_UP
E0 32 BROWSER_HOME BROWSER_HOME BROWSER_HOME
E0 33 (NA) _none_ _none_
E0 35 DIVIDE DIVIDE DIVIDE
E0 37 SNAPSHOT SNAPSHOT SNAPSHOT
E0 38 RMENU RMENU KANJI
E0 3D (NA) (NA) (NA)
E0 3E (NA) (NA) (NA)
E0 3F (NA) (NA) (NA)
E0 40 (NA) (NA) (NA)
E0 41 (NA) (NA) (NA)
E0 42 (NA) _none_ _none_
E0 43 (NA) _none_ _none_
E0 44 (NA) _none_ _none_
E0 46 CANCEL CANCEL CANCEL
E0 47 HOME HOME HOME
E0 48 UP UP UP
E0 49 PRIOR PRIOR PRIOR
E0 4B LEFT LEFT LEFT
E0 4D RIGHT RIGHT RIGHT
E0 4E (NA) (NA) (NA)
E0 4F END END END
E0 50 DOWN DOWN DOWN
E0 51 NEXT NEXT NEXT
E0 52 INSERT INSERT INSERT
E0 53 DELETE DELETE DELETE
E0 5B LWIN LWIN LWIN
E0 5C RWIN RWIN RWIN
E0 5D APPS APPS APPS
E0 5E POWER POWER POWER
E0 5F SLEEP SLEEP SLEEP
E0 60 (NA) (NA) (NA)
E0 61 (NA) (NA) (NA)
E0 62 (NA) (NA) (NA)
E0 63 (NA) (NA) (NA)
E0 64 (NA) (NA) (NA)
E0 65 BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH
E0 66 BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES
E0 67 BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH
E0 68 BROWSER_STOP BROWSER_STOP BROWSER_STOP
E0 69 BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD
E0 6A BROWSER_BACK BROWSER_BACK BROWSER_BACK
E0 6B LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1
E0 6C LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL
E0 6D LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT
E0 71 (NA) (NA) (NA)
E0 74 (NA) (NA) (NA)
E0 75 (NA) (NA) (NA)
E0 76 (NA) (NA) (NA)
E0 77 (NA) (NA) (NA)
E0 78 (NA) (NA) (NA)
E0 79 (NA) (NA) (NA)
E0 7A (NA) (NA) (NA)
E0 7B (NA) (NA) (NA)
E0 F1 (NA) _none_ _none_
E0 F2 (NA) _none_ _none_
E1 1D PAUSE PAUSE PAUSE
Scancode to Virtual key (all)
Scancode Set 1 (hex) Virtual key name
group 1 group 2 group 3 group 4 group 5 group 6
type 1 type 2 type 3 type 4 type 5 type 6 type 7 type 8 type 10 type 11 type 12 type 13 type 16 type 20 type 21 type 22 type 30 type 33 type 34 type 37 type 40 type 41
00 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ ESCAPE _none_ _none_
01 ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE ESCAPE '1' ESCAPE ESCAPE
02 '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '1' '2' '1' '1'
03 '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '2' '3' '2' '2'
04 '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '3' '4' '3' '3'
05 '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '4' '5' '4' '4'
06 '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '5' '6' '5' '5'
07 '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '6' '7' '6' '6'
08 '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '7' '8' '7' '7'
09 '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '8' '9' '8' '8'
0A '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '9' '0' '9' '9'
0B '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' '0' OEM_MINUS '0' '0'
0C OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_MINUS OEM_7 OEM_MINUS OEM_MINUS
0D OEM_PLUS OEM_4 OEM_PLUS OEM_PLUS OEM_PLUS OEM_PLUS OEM_7 OEM_7 OEM_PLUS OEM_PLUS OEM_PLUS OEM_PLUS OEM_PLUS OEM_7 OEM_7 OEM_7 OEM_7 OEM_7 OEM_PLUS OEM_5 OEM_7 OEM_PLUS
0E BACK BACK BACK BACK BACK BACK BACK BACK BACK BACK BACK BACK BACK OEM_5 OEM_5 BACK BACK BACK BACK BACK BACK BACK
0F TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB BACK BACK TAB TAB TAB TAB TAB TAB TAB
10 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' TAB TAB 'Q' 'Q' 'Q' 'Q' 'Q' 'Q' 'Q'
11 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'W' 'Q' 'Q' 'W' 'W' 'W' 'W' 'W' 'W' 'W'
12 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'E' 'W' 'W' 'E' 'E' 'E' 'E' 'E' 'E' 'E'
13 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'R' 'E' 'E' 'R' 'R' 'R' 'R' 'R' 'R' 'R'
14 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'T' 'R' 'R' 'T' 'T' 'T' 'T' 'T' 'T' 'T'
15 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'T' 'T' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y' 'Y'
16 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'U' 'Y' 'Y' 'U' 'U' 'U' 'U' 'U' 'U' 'U'
17 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'I' 'U' 'U' 'I' 'I' 'I' 'I' 'I' 'I' 'I'
18 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'O' 'I' 'I' 'O' 'O' 'O' 'O' 'O' 'O' 'O'
19 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'P' 'O' 'O' 'P' 'P' 'P' 'P' 'P' 'P' 'P'
1A OEM_4 OEM_6 OEM_4 OEM_4 OEM_4 OEM_4 OEM_4 OEM_3 OEM_4 OEM_4 OEM_4 OEM_4 OEM_4 'P' 'P' OEM_4 OEM_3 OEM_3 OEM_4 OEM_3 OEM_3 OEM_4
1B OEM_6 OEM_1 OEM_6 OEM_6 OEM_6 OEM_6 OEM_6 OEM_4 OEM_6 OEM_6 OEM_6 OEM_6 OEM_6 OEM_4 OEM_4 OEM_6 OEM_4 OEM_4 OEM_6 OEM_4 OEM_4 OEM_6
1C RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN OEM_6 OEM_6 RETURN RETURN RETURN RETURN RETURN RETURN RETURN
1D LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL LCONTROL RETURN RETURN LCONTROL LCONTROL LCONTROL LCONTROL 'A' LCONTROL LCONTROL
1E 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'A' 'S' 'A' 'A'
1F 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'S' 'D' 'S' 'S'
20 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'D' 'F' 'D' 'D'
21 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'F' 'G' 'F' 'F'
22 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'G' 'H' 'G' 'G'
23 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'H' 'J' 'H' 'H'
24 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'J' 'K' 'J' 'J'
25 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'K' 'L' 'K' 'K'
26 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' 'L' OEM_PLUS 'L' 'L'
27 OEM_1 OEM_PLUS OEM_1 OEM_1 OEM_1 OEM_1 OEM_PLUS OEM_PLUS OEM_1 OEM_1 OEM_1 OEM_1 OEM_1 OEM_PLUS OEM_PLUS OEM_PLUS OEM_PLUS OEM_PLUS OEM_1 OEM_1 OEM_PLUS OEM_1
28 OEM_7 OEM_3 OEM_7 OEM_7 OEM_3 OEM_3 OEM_1 OEM_1 OEM_7 OEM_7 OEM_7 OEM_7 OEM_7 OEM_1 OEM_1 OEM_1 OEM_1 OEM_1 OEM_7 OEM_6 OEM_1 OEM_7
29 OEM_3 OEM_7 OEM_3 OEM_3 OEM_7 OEM_7 OEM_3 DBE_SBCSCHAR OEM_3 OEM_3 OEM_3 OEM_3 OEM_3 OEM_6 OEM_6 DBE_SBCSCHAR DBE_SBCSCHAR DBE_SBCSCHAR OEM_3 'Z' _none_ DBE_SBCSCHAR
2A LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT LSHIFT 'Z' 'Z' LSHIFT LSHIFT LSHIFT LSHIFT 'X' LSHIFT LSHIFT
2B OEM_5 OEM_5 OEM_5 OEM_5 OEM_5 OEM_5 OEM_5 OEM_6 OEM_5 OEM_5 OEM_5 OEM_5 OEM_5 'X' 'X' OEM_6 OEM_6 OEM_6 OEM_5 'C' OEM_6 OEM_5
2C 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'Z' 'C' 'C' 'Z' 'Z' 'Z' 'Z' 'V' 'Z' 'Z'
2D 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'X' 'V' 'V' 'X' 'X' 'X' 'X' 'B' 'X' 'X'
2E 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'C' 'B' 'B' 'C' 'C' 'C' 'C' 'N' 'C' 'C'
2F 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'V' 'N' 'N' 'V' 'V' 'V' 'V' 'M' 'V' 'V'
30 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'B' 'M' 'M' 'B' 'B' 'B' 'B' OEM_COMMA 'B' 'B'
31 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' 'N' OEM_COMMA OEM_COMMA 'N' 'N' 'N' 'N' OEM_PERIOD 'N' 'N'
32 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' 'M' OEM_PERIOD OEM_PERIOD 'M' 'M' 'M' 'M' OEM_2 'M' 'M'
33 OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_2 OEM_2 OEM_COMMA OEM_COMMA OEM_COMMA OEM_COMMA OEM_8 OEM_COMMA OEM_COMMA
34 OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_8 OEM_8 OEM_PERIOD OEM_PERIOD OEM_PERIOD OEM_PERIOD ' ' OEM_PERIOD OEM_PERIOD
35 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 OEM_2 ' ' ' ' OEM_2 OEM_2 OEM_2 OEM_2 CONVERT OEM_2 OEM_2
36 RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT RSHIFT MULTIPLY MULTIPLY RSHIFT RSHIFT RSHIFT RSHIFT NEXT RSHIFT RSHIFT
37 MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY MULTIPLY DIVIDE DIVIDE MULTIPLY MULTIPLY MULTIPLY MULTIPLY PRIOR MULTIPLY MULTIPLY
38 LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU LMENU ADD ADD LMENU LMENU LMENU LMENU INSERT LMENU LMENU
39 ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' SUBTRACT SUBTRACT ' ' ' ' ' ' ' ' DELETE ' ' ' '
3A CAPITAL CAPITAL CAPITAL CAPITAL CAPITAL CAPITAL DBE_ALPHANUMERIC DBE_ALPHANUMERIC CAPITAL CAPITAL CAPITAL CAPITAL CAPITAL NUMPAD7 NUMPAD7 DBE_ALPHANUMERIC CAPITAL CAPITAL CAPITAL UP CAPITAL CAPITAL
3B F1 F1 F1 F1 F1 F1 F1 F1 F1 F1 F1 F1 F1 NUMPAD8 NUMPAD8 F1 F1 F1 F1 LEFT F1 F1
3C F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 F2 NUMPAD9 NUMPAD9 F2 F2 F2 F2 RIGHT F2 F2
3D F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 F3 EQUAL EQUAL F3 F3 F3 F3 DOWN F3 F3
3E F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 NUMPAD4 NUMPAD4 F4 F4 F4 F4 HOME F4 F4
3F F5 F5 F5 F5 F5 F5 F5 F5 F5 F5 F5 F5 F5 NUMPAD5 NUMPAD5 F5 F5 F5 F5 END F5 F5
40 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 F6 NUMPAD6 NUMPAD6 F6 F6 F6 F6 SUBTRACT F6 F6
41 F7 F7 F7 F7 F7 F7 F7 F7 F7 F7 F7 F7 F7 SEPARATOR SEPARATOR F7 F7 F7 F7 DIVIDE F7 F7
42 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 F8 NUMPAD1 NUMPAD1 F8 F8 F8 F8 NUMPAD7 F8 F8
43 F9 F9 F9 F9 F9 F9 F9 F9 F9 F9 F9 F9 F9 NUMPAD2 NUMPAD2 F9 F9 F9 F9 NUMPAD8 F9 F9
44 F10 F10 F10 F10 F10 F10 F10 F10 F10 F10 F10 F10 F10 NUMPAD3 NUMPAD3 F10 F10 F10 F10 NUMPAD9 F10 F10
45 NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK NUMLOCK RETURN RETURN NUMLOCK NUMLOCK NUMLOCK NUMLOCK MULTIPLY NUMLOCK NUMLOCK
46 SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL SCROLL NUMPAD0 NUMPAD0 SCROLL SCROLL SCROLL SCROLL NUMPAD4 SCROLL SCROLL
47 HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME DECIMAL DECIMAL HOME HOME HOME HOME NUMPAD5 HOME HOME
48 UP UP UP UP UP UP UP UP UP UP UP UP UP INSERT INSERT UP UP UP UP NUMPAD6 UP UP
49 PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR OEM_00 OEM_00 PRIOR PRIOR PRIOR PRIOR ADD PRIOR PRIOR
4A SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT SUBTRACT OEM_000 OEM_000 SUBTRACT SUBTRACT SUBTRACT SUBTRACT NUMPAD1 SUBTRACT SUBTRACT
4B LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT DELETE DELETE LEFT LEFT LEFT LEFT NUMPAD2 LEFT LEFT
4C CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR _none_ _none_ CLEAR CLEAR CLEAR CLEAR NUMPAD3 CLEAR CLEAR
4D RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT UP UP RIGHT RIGHT RIGHT RIGHT OEM_NEC_EQUAL RIGHT RIGHT
4E ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD ADD HOME HOME ADD ADD ADD ADD NUMPAD0 ADD ADD
4F END END END END END END END END END END END END END LEFT LEFT END END END END SEPARATOR END END
50 DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DECIMAL DOWN DOWN
51 NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT NEXT RIGHT RIGHT NEXT NEXT NEXT NEXT NONCONVEDRT NEXT NEXT
52 INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT LCONTROL LCONTROL INSERT INSERT INSERT INSERT F11 INSERT INSERT
53 DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE LSHIFT LSHIFT DELETE DELETE DELETE DELETE F12 DELETE DELETE
54 SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT _none_ _none_ SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT F13 SNAPSHOT SNAPSHOT
55 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ CAPITAL _none_ _none_ _none_ _none_ _none_ F14 _none_ _none_
56 OEM_102 HELP OEM_102 OEM_102 _none_ OEM_PA2 _none_ _none_ OEM_102 OEM_102 OEM_102 OEM_102 OEM_102 DBE_HIRAGANA _none_ _none_ _none_ _none_ _none_ F15 _none_ _none_
57 F11 RETURN F11 F11 _none_ HELP F11 F11 F11 F11 F11 F11 F11 NONCONVERT NONCONVERT F11 F11 F11 F11 _none_ F11 F11
58 F12 LEFT F12 F12 _none_ OEM_102 F12 F12 F12 F12 F12 F12 F12 CONVERT CONVERT F12 F12 F12 F12 _none_ F12 F12
59 CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR CLEAR KANJI KANJI CLEAR OEM_NEC_EQUAL OEM_NEC_EQUAL OEM_NEC_EQUAL _none_ _none_ _none_
5A OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL NONAME NONAME OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL NONCONVERT DBE_KATAKANA _none_ NONAME NONAME NONAME NONCONVERT _none_ _none_ _none_
5B OEM_FINISH OEM_FINISH OEM_FINISH OEM_FINISH OEM_FINISH OEM_FINISH NONAME NONAME OEM_FINISH OEM_FINISH OEM_FINISH OEM_FINISH CONVERT F12 F12 NONAME _none_ _none_ NONAME _none_ _none_ _none_
5C OEM_JUMP OEM_JUMP OEM_JUMP OEM_JUMP OEM_JUMP OEM_JUMP NONAME NONAME OEM_JUMP OEM_JUMP OEM_JUMP OEM_JUMP OEM_AX LMENU LMENU NONAME SEPARATOR SEPARATOR SEPARATOR RETURN _none_ _none_
5D EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF EREOF F1 F1 EREOF F13 F13 F13 _none_ _none_ _none_
5E OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB _none_ _none_ OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB OEM_BAC _none_ F2 F2 _none_ F14 F14 F14 _none_ _none_ _none_
5F OEM_AUTO OEM_AUTO OEM_AUTO OEM_AUTO OEM_AUTO OEM_AUTO NONAME NONAME OEM_AUTO OEM_AUTO OEM_AUTO OEM_AUTO NONAME F3 F3 NONAME F15 F15 F15 _none_ _none_ _none_
60 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ F4 F4 _none_ _none_ _none_ _none_ CANCEL _none_ _none_
61 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ ZOOM ZOOM ZOOM ZOOM _none_ F5 F5 _none_ _none_ _none_ _none_ SNAPSHOT _none_ _none_
62 ZOOM ZOOM ZOOM ZOOM ZOOM ZOOM _none_ _none_ HELP HELP HELP HELP _none_ F6 F6 _none_ _none_ _none_ _none_ F1 _none_ _none_
63 HELP HELP HELP HELP HELP HELP _none_ _none_ _none_ _none_ _none_ _none_ _none_ F7 F7 _none_ _none_ _none_ _none_ F2 _none_ _none_
64 F13 F13 F13 F13 F13 F13 F13 F13 F13 F13 F13 F13 F13 F8 F8 F13 _none_ _none_ F13 F3 _none_ _none_
65 F14 F14 F14 F14 F14 F14 F14 F14 F14 F14 F14 F14 F14 F9 F9 F14 _none_ _none_ F14 F4 _none_ _none_
66 F15 F15 F15 F15 F15 F15 F15 F15 F15 F15 F15 F15 F15 F10 F10 F15 _none_ _none_ F15 F5 _none_ _none_
67 F16 F16 F16 F16 F16 F16 F16 F16 F16 F16 F16 F16 F16 _none_ OEM_LOYA F16 _none_ _none_ F16 F6 _none_ _none_
68 F17 F17 F17 F17 F17 F17 F17 F17 F17 F17 F17 F17 F17 _none_ OEM_ROYA F17 _none_ _none_ F17 F7 _none_ _none_
69 F18 F18 F18 F18 F18 F18 F18 F18 F18 F18 F18 F18 F18 F11 F11 F18 _none_ _none_ F18 F8 _none_ _none_
6A F19 F19 F19 F19 F19 F19 F19 F19 F19 F19 F19 F19 F19 _none_ DBE_ALPHANUMERIC F19 _none_ _none_ F19 F9 _none_ _none_
6B F20 F20 F20 F20 F20 F20 F20 F20 F20 F20 F20 F20 F20 OEM_JISHO OEM_JISHO F20 _none_ _none_ F20 F10 _none_ _none_
6C F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 F21 OEM_MASSHOU OEM_MASSHOU F21 _none_ _none_ F21 _none_ _none_ _none_
6D F22 F22 F22 F22 F22 F22 F22 F22 F22 F22 F22 F22 F22 _none_ _none_ F22 _none_ _none_ F22 _none_ _none_ _none_
6E F23 F23 F23 F23 F23 F23 F23 F23 F23 F23 F23 F23 F23 PRIOR PRIOR F23 _none_ _none_ F23 _none_ _none_ _none_
6F OEM_PA3 OEM_PA3 OEM_PA3 OEM_PA3 OEM_PA3 OEM_PA3 _none_ _none_ OEM_PA3 OEM_PA3 OEM_PA3 OEM_PA3 _none_ _none_ DBE_KATAKANA _none_ _none_ _none_ _none_ _none_ _none_ _none_
70 _none_ _none_ _none_ _none_ _none_ _none_ DBE_KATAKANA DBE_HIRAGANA _none_ _none_ _none_ _none_ _none_ NEXT NEXT DBE_HIRAGANA KANA KANA DBE_HIRAGANA LSHIFT DBE_HIRAGANA DBE_HIRAGANA
71 OEM_RESET OEM_RESET OEM_RESET OEM_RESET OEM_RESET OEM_RESET _none_ _none_ OEM_RESET OEM_RESET OEM_RESET OEM_RESET _none_ _none_ _none_ _none_ _none_ _none_ _none_ CAPITAL _none_ _none_
72 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ CANCEL CANCEL _none_ _none_ _none_ _none_ KANA _none_ _none_
73 ABNT_C1 ABNT_C1 ABNT_C1 ABNT_C1 ABNT_C1 ABNT_C1 OEM_102 OEM_102 ABNT_C1 ABNT_C1 ABNT_C1 ABNT_C1 _none_ EXECUTE EXECUTE OEM_102 OEM_8 OEM_8 _none_ LMENU OEM_102 _none_
74 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ F13 F13 _none_ _none_ OEM_NEC_EQUAL _none_ LCONTROL _none_ _none_
75 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ F14 F14 _none_ _none_ SEPARATOR _none_ _none_ _none_ _none_
76 F24 F24 F24 F24 F24 F24 F24 F24 F24 F24 F24 F24 F24 F15 F15 F24 _none_ _none_ F24 _none_ _none_ _none_
77 _none_ _none_ _none_ _none_ _none_ _none_ DBE_SBCSCHAR _none_ _none_ _none_ _none_ _none_ _none_ F16 F16 _none_ _none_ _none_ DBE_SBCSCHAR LWIN _none_ _none_
78 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ CLEAR CLEAR _none_ _none_ _none_ _none_ RWIN _none_ _none_
79 _none_ _none_ _none_ _none_ _none_ _none_ CONVERT CONVERT _none_ _none_ _none_ _none_ _none_ HELP HELP CONVERT CONVERT CONVERT CONVERT APPS CONVERT CONVERT
7A _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ END END _none_ _none_ _none_ _none_ _none_ _none_ _none_
7B OEM_PA1 OEM_PA1 OEM_PA1 OEM_PA1 OEM_PA1 OEM_PA1 NONCONVERT NONCONVERT OEM_PA1 OEM_PA1 OEM_PA1 OEM_PA1 _none_ SCROLL SCROLL NONCONVERT NONCONVERT NONCONVERT NONCONVERT _none_ NONCONVERT NONCONVERT
7C TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB TAB PAUSE PAUSE TAB TAB TAB _none_ _none_ _none_ _none_
7D _none_ _none_ _none_ _none_ _none_ _none_ _none_ OEM_5 _none_ _none_ _none_ _none_ _none_ SNAPSHOT SNAPSHOT OEM_5 OEM_5 OEM_5 _none_ RSHIFT OEM_5 _none_
7E ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 ABNT_C2 _none_ _none_ ABNT_C2 ABNT_C2 ABNT_C2 _none_ ABNT_C2 _none_ _none_
7F OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 OEM_PA2 _none_ _none_ OEM_PA2 OEM_PA2 OEM_PA2 _none_ OEM_PA2 _none_ _none_
E0 0F (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) KANA KANA
E0 10 MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK _none_ MEDIA_PREV_TRACK (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 19 MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK _none_ MEDIA_NEXT_TRACK (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 1C RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN RETURN _none_ _none_ RETURN RETURN RETURN RETURN (NA) RETURN RETURN
E0 1D RCONTROL RCONTROL RCONTROL RCONTROL RCONTROL RCONTROL RCONTROL RCONTROL HANJA HANGEUL RCONTROL RCONTROL DBE_KATAKANA _none_ _none_ RCONTROL RCONTROL RCONTROL KANA (NA) RCONTROL RCONTROL
E0 20 VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 21 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 22 MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 24 MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP MEDIA_STOP (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 2E VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 30 VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP VOLUME_UP (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 32 BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME BROWSER_HOME (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 33 (NA) (NA) (NA) (NA) (NA) (NA) OEM_8 _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ (NA) _none_ _none_
E0 35 DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE DIVIDE _none_ _none_ DIVIDE DIVIDE DIVIDE DIVIDE (NA) DIVIDE DIVIDE
E0 37 SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT _none_ _none_ SNAPSHOT SNAPSHOT SNAPSHOT SNAPSHOT (NA) SNAPSHOT SNAPSHOT
E0 38 RMENU RMENU RMENU RMENU RMENU RMENU DBE_HIRAGANA RMENU HANGEUL HANJA RMENU RMENU KANJI _none_ _none_ RMENU _none_ _none_ KANJI (NA) RMENU RMENU
E0 3D (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) F13 F13
E0 3E (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) F14 F14
E0 3F (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) F15 F15
E0 40 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) F16 F16
E0 41 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) F17 F17
E0 42 (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ RCONTROL (NA) _none_ _none_
E0 43 (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ RMENU (NA) _none_ _none_
E0 44 (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ _none_ (NA) _none_ _none_
E0 46 CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL CANCEL _none_ _none_ CANCEL CANCEL CANCEL CANCEL (NA) CANCEL CANCEL
E0 47 HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME HOME _none_ _none_ HOME HOME HOME HOME (NA) HOME HOME
E0 48 UP UP UP UP UP UP UP UP UP UP UP UP UP _none_ _none_ UP UP UP UP (NA) UP UP
E0 49 PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR PRIOR _none_ _none_ PRIOR PRIOR PRIOR PRIOR (NA) PRIOR PRIOR
E0 4B LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT LEFT _none_ _none_ LEFT LEFT LEFT LEFT (NA) LEFT LEFT
E0 4D RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT RIGHT _none_ _none_ RIGHT RIGHT RIGHT RIGHT (NA) RIGHT RIGHT
E0 4E (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) ADD ADD
E0 4F END END END END END END END END END END END END END _none_ _none_ END END END END (NA) END END
E0 50 DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN DOWN _none_ _none_ DOWN DOWN DOWN DOWN (NA) DOWN DOWN
E0 51 NEXT F1 NEXT NEXT _none_ OEM_PA2 NEXT NEXT NEXT NEXT NEXT NEXT NEXT _none_ _none_ NEXT NEXT NEXT NEXT (NA) NEXT NEXT
E0 52 INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT _none_ _none_ INSERT INSERT INSERT INSERT (NA) INSERT INSERT
E0 53 DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE _none_ _none_ DELETE DELETE DELETE DELETE (NA) DELETE DELETE
E0 5B LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN LWIN _none_ _none_ LWIN LWIN LWIN LWIN (NA) _none_ _none_
E0 5C RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN RWIN _none_ _none_ RWIN RWIN RWIN RWIN (NA) _none_ _none_
E0 5D APPS APPS APPS APPS APPS APPS APPS APPS APPS APPS APPS APPS APPS _none_ _none_ APPS APPS APPS APPS (NA) _none_ _none_
E0 5E POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER POWER (NA) POWER POWER
E0 5F SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP SLEEP (NA) SLEEP SLEEP
E0 60 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) SCROLL SCROLL _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 61 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) HOME HOME _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 62 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) END END _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 63 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 64 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 65 BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 66 BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 67 BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 68 BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP BROWSER_STOP (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 69 BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 6A BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK BROWSER_BACK (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 6B LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 6C LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 6D LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT OEM_TOUROKU OEM_TOUROKU _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 71 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) DBE_SBCSCHAR DBE_SBCSCHAR _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 74 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 75 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 76 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 77 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 78 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 79 (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 7A (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 7B (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ _none_ _none_ _none_ _none_ (NA) (NA) (NA)
E0 F1 (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ HANJA HANJA HANJA HANJA _none_ (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E0 F2 (NA) (NA) (NA) (NA) (NA) (NA) _none_ _none_ HANGEUL HANGEUL HANGEUL HANGEUL _none_ (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA) (NA)
E1 1D PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE PAUSE

Table 4, 5 での group について

Table 4, 5 では Scancode とキーボードの配列毎の Virtual-Key を記載している。 この中で "Group" とは、各種キーボード毎のグループである。これは Table 4, 5 の内容の基となっている Windows SDK 付属の kbd.h でのグループ分けのままである。 特に説明を見つけられなかったので適当に説明をつけて Table 6 にまとめる。

kbd.h での各種キーボードのグループ分け
No. Description
1 Standard key-layouts
2 Japanese and Korean key-layouts
3 Fujitsu key-layouts
4 NEC PC-9800 key-layouts
5 NEC PC-9800 key-layout
6 DEC keyboard key-layouts

Table 4, 5 での各 type について

Table 4, 5 で記載した各種キーボードに関するその他の情報ついて、次の Table 7 にまとめる。 NEC PC-9800 系がやたら多いが、これ用の配列ファイルがもう Windows 内に存在していないので定義はあれども使わない物になっている。 何個かで書かれている "Hydra" は Windows-based Terminal というかつてあったもののコードネームらしい。 コードネームが残っていることと OS の種類毎に定義していることから、開発中に色々とりあえず作ってみたもののたいして使わなかった、とかそんなところなのではないかと妄想している。

kbd.h での各種キーボードに関する情報
type Group Gr. default Description note
1 1 AT&T '301' & '302'; Olivetti 83-key; PC-XT 84-key; etc.
2 1 Olivetti M24 102-key
3 1 HP Vectra (DIN); Olivetti 86-key; etc.
4 1 HP Vectra (DIN); Olivetti 86-key; etc. default (if kbd type No. is not defined)
5 1 Nokia (Ericsson) type 5 (1050, etc.)
6 1 Nokia (Ericsson) type 6 (9140)
7 2 Japanese IBM type 002 keyboard.
8 2 Japanese OADG (106) keyboard.
10 2 Korean 101 (type A) keyboard.
11 2 Korean 101 (type B) keyboard.
12 2 Korean 101 (type C) keyboard.
13 2 Korean 103 keyboard.
16 2 Japanese AX keyboard.
20 3 Fujitsu FMR JIS keyboard
21 3 Fujitsu FMR OYAYUBI keyboard.
22 3 Fujitsu FMV OYAYUBI keyboard.
30 4 NEC PC-9800 Normal Keyboard.
31 4 NEC PC-9800 Document processor Keyboard. - not supported on NT5
32 4 NEC PC-9800 106 Keyboard. - same as KBD_TYPE 8
33 4 NEC PC-9800 for Hydra: PC-9800 Keyboard on Windows NT 5.0, NEC PC98NX for Hydra: PC-9800 Keyboard on Windows 95/NT.
34 4 NEC PC-9800 for Hydra: PC-9800 Keyboard on Windows NT 3.51/4.0.
37 5 NEC PC-9800 for Hydra: PC-9800 Keyboard on Windows 95.
40 6 DEC LK411-JI (JIS layout) keyboard
41 6 DEC LK411-AJ (ANSI layout) keyboard

US 以外の type 4 キーボードについて

ISO (105) 配列を用いるフランス語などのキーボードは、kbd.h 上では type 4 であるが一部の Scancode に対して対応する Virtual-Key が異なっている。 例えばフランス語の配列定義ファイルである kbdfr.dll であれば、ソースのヘッダーファイルの1つである kbdfr.h で再定義されている。 下記に一部を抜粋する。

#define KBD_TYPE 4
  
  /*
  * Include the basis of all keyboard table values
  */
  #include "kbd.h"
  #include <dontuse.h>
  /***************************************************************************\
  * The table below defines the virtual keys for various keyboard types where
  * the keyboard differ from the US keyboard.
  *
  * _EQ() : all keyboard types have the same virtual key for this scancode
  * _NE() : different virtual keys for this scancode, depending on kbd type
  *
  *     +------+ +----------+----------+----------+----------+----------+----------+
  *     | Scan | |    kbd   |    kbd   |    kbd   |    kbd   |    kbd   |    kbd   |
  *     | code | |   type 1 |   type 2 |   type 3 |   type 4 |   type 5 |   type 6 |
  \****+-------+_+----------+----------+----------+----------+----------+----------+*/

#undef T29 #define T29 _EQ( OEM_5 )

ベースとなる type 4 (実質的には US) と、ソースファイルを確認できるフランス用とドイツ用の定義、そして本ページで ISO 配列の代表例として使っているイギリス用の配列を比較した (Table 8)。 イギリス用の配列はソースファイルが入手できなかったので、kbduk.dll をバイナリで覗いて値を拾ってきた(他のソースから大体構造分かるので……)。 できれば他も全部公開して欲しいところ。さすがに使わない言語の配列を全部調べる気にはならず。 なお、イギリス用配列は実際の定義ファイルの内容であるので、言語による違い以外の違いも出ている。これは後述する。 下記の Table 8 での "diff" は type 4 とそれぞれとの違いを示している。

Virtual-Keys for type 4 (US) and ISOs
Scancode Set 1 (hex) type 4 FR GR UK
VK Name VK Name diff VK Name diff VK Code VK Name diff
00 _none_ _none_ _none_ FF _none_
01 ESCAPE ESCAPE ESCAPE 1B ESCAPE
02 1 1 1 31 1
03 2 2 2 32 2
04 3 3 3 33 3
05 4 4 4 34 4
06 5 5 5 35 5
07 6 6 6 36 6
08 7 7 7 37 7
09 8 8 8 38 8
0A 9 9 9 39 9
0B 0 0 0 30 0
0C OEM_MINUS OEM_4 OEM_4 BD OEM_MINUS
0D OEM_PLUS OEM_PLUS OEM_6 BB OEM_PLUS
0E BACK BACK BACK 08 BACK
0F TAB TAB TAB 09 TAB
10 Q A Q 51 Q
11 W Z W 57 W
12 E E E 45 E
13 R R R 52 R
14 T T T 54 T
15 Y Y Y 59 Y
16 U U U 55 U
17 I I I 49 I
18 O O O 4F O
19 P P P 50 P
1A OEM_4 OEM_6 OEM_1 DB OEM_4
1B OEM_6 OEM_1 OEM_PLUS DD OEM_6
1C RETURN RETURN RETURN 0D RETURN
1D LCONTROL LCONTROL LCONTROL A2 LCONTROL
1E A Q A 41 A
1F S S S 53 S
20 D D D 44 D
21 F F F 46 F
22 G G G 47 G
23 H H H 48 H
24 J J J 4A J
25 K K K 4B K
26 L L L 4C L
27 OEM_1 M OEM_1 BA OEM_1
28 OEM_7 OEM_3 OEM_7 C0 OEM_3
29 OEM_3 OEM_7 OEM_5 DF OEM_8
2A LSHIFT LSHIFT LSHIFT A0 LSHIFT
2B OEM_5 OEM_5 OEM_2 DE OEM_7
2C Z W Y 5A Z
2D X X X 58 X
2E C C C 43 C
2F V V V 56 V
30 B B B 42 B
31 N N N 4E N
32 M OEM_COMMA M 4D M
33 OEM_COMMA OEM_PERIOD OEM_COMMA BC OEM_COMMA
34 OEM_PERIOD OEM_2 OEM_PERIOD BE OEM_PERIOD
35 OEM_2 OEM_8 OEM_MINUS BF OEM_2
36 RSHIFT RSHIFT RSHIFT A1 RSHIFT
37 MULTIPLY MULTIPLY MULTIPLY 6A MULTIPLY
38 LMENU LMENU LMENU A4 LMENU
39 SPACE SPACE SPACE 20 SPACE
3A CAPITAL CAPITAL CAPITAL 14 CAPITAL
3B F1 F1 F1 70 F1
3C F2 F2 F2 71 F2
3D F3 F3 F3 72 F3
3E F4 F4 F4 73 F4
3F F5 F5 F5 74 F5
40 F6 F6 F6 75 F6
41 F7 F7 F7 76 F7
42 F8 F8 F8 77 F8
43 F9 F9 F9 78 F9
44 F10 F10 F10 79 F10
45 NUMLOCK NUMLOCK NUMLOCK 90 NUMLOCK
46 SCROLL SCROLL SCROLL 91 SCROLL
47 HOME HOME HOME 24 HOME
48 UP UP UP 26 UP
49 PRIOR PRIOR PRIOR 21 PRIOR
4A SUBTRACT SUBTRACT SUBTRACT 6D SUBTRACT
4B LEFT LEFT LEFT 25 LEFT
4C CLEAR CLEAR CLEAR 0C CLEAR
4D RIGHT RIGHT RIGHT 27 RIGHT
4E ADD ADD ADD 6B ADD
4F END END END 23 END
50 DOWN DOWN DOWN 28 DOWN
51 NEXT NEXT NEXT 22 NEXT
52 INSERT INSERT INSERT 2D INSERT
53 DELETE DELETE DELETE 2E DELETE
54 SNAPSHOT SNAPSHOT SNAPSHOT 2C SNAPSHOT
55 _none_ _none_ _none_ FF _none_
56 OEM_102 OEM_102 OEM_102 DC OEM_5
57 F11 F11 F11 7A F11
58 F12 F12 F12 7B F12
59 CLEAR CLEAR CLEAR 0C CLEAR
5A OEM_WSCTRL OEM_WSCTRL OEM_WSCTRL EE OEM_WSCTRL
5B OEM_FINISH OEM_FINISH OEM_FINISH F1 OEM_FINISH
5C OEM_JUMP OEM_JUMP OEM_JUMP EA OEM_JUMP
5D EREOF EREOF EREOF F9 EREOF
5E OEM_BACKTAB OEM_BACKTAB OEM_BACKTAB F5 OEM_BACKTAB
5F OEM_AUTO OEM_AUTO OEM_AUTO F3 OEM_AUTO
60 _none_ _none_ _none_ FF _none_
61 _none_ _none_ _none_ FF _none_
62 ZOOM ZOOM ZOOM FB ZOOM
63 HELP HELP HELP 2F HELP
64 F13 F13 F13 7C F13
65 F14 F14 F14 7D F14
66 F15 F15 F15 7E F15
67 F16 F16 F16 7F F16
68 F17 F17 F17 80 F17
69 F18 F18 F18 81 F18
6A F19 F19 F19 82 F19
6B F20 F20 F20 83 F20
6C F21 F21 F21 84 F21
6D F22 F22 F22 85 F22
6E F23 F23 F23 86 F23
6F OEM_PA3 OEM_PA3 OEM_PA3 ED OEM_PA3
70 _none_ _none_ _none_ FF _none_
71 OEM_RESET OEM_RESET OEM_RESET E9 OEM_RESET
72 _none_ _none_ _none_ FF _none_
73 ABNT_C1 ABNT_C1 ABNT_C1 C1 ABNT_C1
74 _none_ _none_ _none_ FF _none_
75 _none_ _none_ _none_ FF _none_
76 F24 F24 F24 87 F24
77 _none_ _none_ _none_ FF _none_
78 _none_ _none_ _none_ FF _none_
79 _none_ _none_ _none_ FF _none_
7A _none_ _none_ _none_ FF _none_
7B OEM_PA1 OEM_PA1 OEM_PA1 EB OEM_PA1
7C TAB TAB TAB 09 TAB
7D _none_ _none_ _none_ FF _none_
7E ABNT_C2 ABNT_C2 ABNT_C2 C2 ABNT_C2
7F OEM_PA2 OEM_PA2 OEM_PA2 - (NA)
E0 0F (NA) (NA) (NA) - (NA)
E0 10 MEDIA_PREV_TRACK MEDIA_PREV_TRACK MEDIA_PREV_TRACK B1 MEDIA_PREV_TRACK
E0 19 MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK MEDIA_NEXT_TRACK B0 MEDIA_NEXT_TRACK
E0 1C RETURN RETURN RETURN 0D RETURN
E0 1D RCONTROL RCONTROL RCONTROL A3 RCONTROL
E0 20 VOLUME_MUTE VOLUME_MUTE VOLUME_MUTE AD VOLUME_MUTE
E0 21 LAUNCH_APP2 LAUNCH_APP2 LAUNCH_APP2 B7 LAUNCH_APP2
E0 22 MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE MEDIA_PLAY_PAUSE B3 MEDIA_PLAY_PAUSE
E0 24 MEDIA_STOP MEDIA_STOP MEDIA_STOP B2 MEDIA_STOP
E0 2E VOLUME_DOWN VOLUME_DOWN VOLUME_DOWN AE VOLUME_DOWN
E0 30 VOLUME_UP VOLUME_UP VOLUME_UP AF VOLUME_UP
E0 32 BROWSER_HOME BROWSER_HOME BROWSER_HOME AC BROWSER_HOME
E0 33 (NA) (NA) (NA) - (NA)
E0 35 DIVIDE DIVIDE DIVIDE 6F DIVIDE
E0 37 SNAPSHOT SNAPSHOT SNAPSHOT 2C SNAPSHOT
E0 38 RMENU RMENU RMENU A5 RMENU
E0 3D (NA) (NA) (NA) - (NA)
E0 3E (NA) (NA) (NA) - (NA)
E0 3F (NA) (NA) (NA) - (NA)
E0 40 (NA) (NA) (NA) - (NA)
E0 41 (NA) (NA) (NA) - (NA)
E0 42 (NA) (NA) (NA) - (NA)
E0 43 (NA) (NA) (NA) - (NA)
E0 44 (NA) (NA) (NA) - (NA)
E0 46 CANCEL CANCEL CANCEL 03 CANCEL
E0 47 HOME HOME HOME 24 HOME
E0 48 UP UP UP 26 UP
E0 49 PRIOR PRIOR PRIOR 21 PRIOR
E0 4B LEFT LEFT LEFT 25 LEFT
E0 4D RIGHT RIGHT RIGHT 27 RIGHT
E0 4E (NA) (NA) (NA) - (NA)
E0 4F END END END 23 END
E0 50 DOWN DOWN DOWN 28 DOWN
E0 51 NEXT NEXT NEXT 22 NEXT
E0 52 INSERT INSERT INSERT 2D INSERT
E0 53 DELETE DELETE DELETE 2E DELETE
E0 5B LWIN LWIN LWIN 5B LWIN
E0 5C RWIN RWIN RWIN 5C RWIN
E0 5D APPS APPS APPS 5D APPS
E0 5E POWER POWER POWER - (NA)
E0 5F SLEEP SLEEP SLEEP 5F SLEEP
E0 60 (NA) (NA) (NA) - (NA)
E0 61 (NA) (NA) (NA) - (NA)
E0 62 (NA) (NA) (NA) - (NA)
E0 63 (NA) (NA) (NA) - (NA)
E0 64 (NA) (NA) (NA) - (NA)
E0 65 BROWSER_SEARCH BROWSER_SEARCH BROWSER_SEARCH AA BROWSER_SEARCH
E0 66 BROWSER_FAVORITES BROWSER_FAVORITES BROWSER_FAVORITES AB BROWSER_FAVORITES
E0 67 BROWSER_REFRESH BROWSER_REFRESH BROWSER_REFRESH A8 BROWSER_REFRESH
E0 68 BROWSER_STOP BROWSER_STOP BROWSER_STOP A9 BROWSER_STOP
E0 69 BROWSER_FORWARD BROWSER_FORWARD BROWSER_FORWARD A7 BROWSER_FORWARD
E0 6A BROWSER_BACK BROWSER_BACK BROWSER_BACK A6 BROWSER_BACK
E0 6B LAUNCH_APP1 LAUNCH_APP1 LAUNCH_APP1 B6 LAUNCH_APP1
E0 6C LAUNCH_MAIL LAUNCH_MAIL LAUNCH_MAIL B4 LAUNCH_MAIL
E0 6D LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT LAUNCH_MEDIA_SELECT B5 LAUNCH_MEDIA_SELECT
E0 71 (NA) (NA) (NA) - (NA)
E0 74 (NA) (NA) (NA) - (NA)
E0 75 (NA) (NA) (NA) - (NA)
E0 76 (NA) (NA) (NA) - (NA)
E0 77 (NA) (NA) (NA) - (NA)
E0 78 (NA) (NA) (NA) - (NA)
E0 79 (NA) (NA) (NA) - (NA)
E0 7A (NA) (NA) (NA) - (NA)
E0 7B (NA) (NA) (NA) - (NA)
E0 F1 (NA) (NA) (NA) - (NA)
E0 F2 (NA) (NA) (NA) - (NA)
E1 1D PAUSE PAUSE PAUSE 13 PAUSE

イギリス用定義ファイルは type 4, フランス用、ドイツ用の Scancode to Virtual-Key の定義とは決定的に異なる箇所が2点ある。 それは Scancode Set 1 での 0x7F, 0xE0 5D であるが、この違いは実際の定義ファイルを生成する過程で発生すると思われる。 参考として kbdus.c を見ると下記のように、上記であげた2つの Scancode については定義されていない。 後者は VK_POWER のことなので定義がないことも理解は出来るが(理由は前述した)、前者は使わないようだがなぜ意図的に定義から外しているのか不明。 なお、kbd106.c を見ると 0x7F も含めているので、ますますよく分からない。

    T74, T75, T76, T77, T78, T79, T7A, T7B,
    T7C, T7D, T7E

};
        { 0x5D, X5D | KBDEXT              },  // Application
        { 0x5F, X5F | KBDEXT              },  // Speedracer: Sleep
    T7C, T7D, T7E, T7F

};

参考資料

Virtual-Key Codes (Winuser.h) - Win32 apps | Microsoft Docs
最も全般的な Virtual-Key の名前とコードに関する Microsoft の資料。ただし OEM 固有のものや Far East 地域固有のものについては記載がなく、他の更新停止した資料を参照する必要がある(どうして……)。
Virtual Key Codes | Microsoft Docs
日本語固有の一部 Virtual-Key の名称を確認できる Microsoft の資料。
Manufacturer-specific Virtual Key Codes | Microsoft Docs
OEM 固有の Virtual-Key について確認できる Microsoft の資料。
Brazilian (ABNT) Keyboard | Microsoft Docs
VK_ABNT_C1, VK_ABNT_C2 の存在を確認できる Microsoft の資料。他には見つけられなかった。それぞれ Scancode (Set 1) が 0x73, 0x7e と記載されている。
Keys and Key Codes for Windows Mobile | Microsoft Docs
Windows Mobile 用の Virtual-Key が記載されている Microsoft の資料。
Windows 10 SDK
Windows 10 用の SDK。これに含まれるファイルはインストールしないと確認できない。kbd.h もこれに含まれている(ネット上でちらほら確認できる適当に公開されているファイルは出所やバージョンが確かでない限り参考にするべきではない)。
Windows-driver-samples/kbdus.c at 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc · microsoft/Windows-driver-samples · GitHub
ANSI (104) 配列用キー定義ファイルのソースファイル
Windows-driver-samples/kbd106.c at 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc · microsoft/Windows-driver-samples · GitHub
JIS (109) 配列用キー定義ファイルのソースファイル
Windows-driver-samples/kbdfr.h at 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc · microsoft/Windows-driver-samples · GitHub
フランス語用キー定義ファイルのヘッダーファイル
Windows-driver-samples/kbdgr.h at 96eb96dfb613e4c745db6bd1f53a92fe7e2290fc · microsoft/Windows-driver-samples · GitHub
ドイツ語用キー定義ファイルのヘッダーファイル

※Github 上のファイルは後々更新された内容が変わる可能性を考慮して、あえて記事投稿時点の最新コミットを指定している