Keyboard layouts by virtual keys

As of Windows 10.0.29580.1000

By dead keys โ€ข By ligatures โ€ข By SGCAPS โ€ข By Unicode โ€ข By virtual keys โ€ข By shift states โ€ข By flags โ€ข By languages
Sorting It All Out โ€ข MSKLC โ€ข Terminology

This page is based on 217 system keyboard drivers.

Virtual keys with text output

The following tables contain virtual keys mapped to keys that output characters.

By least used

DriversVirtual keys used in this number of drivers
1ABNT C1 ยท ABNT C2 ยท OEM AUTO
4OEM NEC EQUAL ยท SEPARATOR
26OEM 8
168OEM 102
203OEM 5
204OEM PLUS
210OEM 3 ยท Z
212OEM MINUS
2142 ยท 3 ยท 4 ยท 6 ยท OEM 4 ยท OEM 6 ยท OEM 7 ยท V
2151 ยท 5 ยท 7 ยท 8 ยท 9 ยท OEM 2 ยท OEM COMMA ยท Q ยท W
2160 ยท C ยท G ยท J ยท OEM 1 ยท OEM PERIOD ยท P ยท R ยท T ยท X ยท Y
217A ยท ADD ยท B ยท BACK ยท CANCEL ยท D ยท DECIMAL ยท DIVIDE ยท E ยท ESCAPE ยท F ยท H ยท I ยท K ยท L ยท M ยท MULTIPLY ยท N ยท NUMPAD0 ยท NUMPAD1 ยท NUMPAD2 ยท NUMPAD3 ยท NUMPAD4 ยท NUMPAD5 ยท NUMPAD6 ยท NUMPAD7 ยท NUMPAD8 ยท NUMPAD9 ยท O ยท RETURN ยท S ยท SPACE ยท SUBTRACT ยท TAB ยท U

For example, there is one keyboard driver that contains VK_ABNT_C1 which types something when the key is pressed, and similarly there is one keyboard driver that contains VK_OEM_AUTO that types something. Note however that they are not the same keyboard driver.

By least stable

PositionsVirtual keys at this number of different positions across all drivers
14OEM 2
11OEM 1
10OEM 6 ยท OEM 8 ยท OEM PERIOD ยท Z
9F ยท J ยท OEM 4 ยท OEM 7 ยท OEM COMMA
8C ยท D ยท G ยท I ยท L ยท M ยท OEM 5 ยท Q ยท Y
7B ยท E ยท K ยท N ยท O ยท OEM 3 ยท OEM MINUS ยท OEM PLUS ยท S ยท V ยท W
6A ยท H ยท P ยท R ยท T ยท U ยท X
50
45 ยท 6 ยท 7 ยท 8 ยท 9
31 ยท 2 ยท 3 ยท 4 ยท ADD ยท OEM NEC EQUAL ยท RETURN ยท SEPARATOR
2CANCEL ยท DECIMAL ยท DIVIDE ยท ESCAPE ยท MULTIPLY ยท NUMPAD0 ยท NUMPAD1 ยท NUMPAD2 ยท NUMPAD3 ยท NUMPAD4 ยท NUMPAD5 ยท NUMPAD6 ยท NUMPAD7 ยท NUMPAD8 ยท NUMPAD9 ยท OEM 102 ยท SPACE ยท SUBTRACT ยท TAB
1ABNT C1 ยท ABNT C2 ยท BACK ยท OEM AUTO

Virtual keys assigned to keys without any output

The following tables consider virtual keys that are present in the scancode to virtual key mapping tables, but not in the virtual key to character tables. Note that a virtual key can output text on one layout but not on another, in which case it appears both above and below.

By least used

DriversVirtual keys used in this number of drivers
10 ยท C ยท G ยท J ยท OEM 1 ยท OEM 7 ยท OEM 8 ยท OEM AX ยท OEM PERIOD ยท P ยท R ยท T ยท X ยท Y
21 ยท 5 ยท 7 ยท 8 ยท 9 ยท OEM 2 ยท OEM COMMA ยท OEM MINUS ยท Q ยท W
32 ยท 3 ยท 4 ยท 6 ยท DBE ALPHANUMERIC ยท IME OFF ยท IME ON ยท OEM 4 ยท OEM 6 ยท V
4OEM COPY
5OEM PLUS
6OEM 3
7HANJA ยท NONAME ยท Z
8CONVERT
9NONCONVERT
10KANA
13OEM 5 ยท OEM PA2
37OEM 102
207ABNT C1
208DBE NOCODEINPUT ยท HELP ยท OEM BACKTAB ยท OEM JUMP ยท OEM PA1 ยท OEM PA3 ยท OEM RESET ยท OEM WSCTRL ยท RMENU
210BROWSER BACK ยท BROWSER FAVORITES ยท BROWSER FORWARD ยท BROWSER HOME ยท BROWSER REFRESH ยท BROWSER SEARCH ยท BROWSER STOP ยท DBE KATAKANA ยท LAUNCH APP1 ยท LAUNCH APP2 ยท LAUNCH MAIL ยท LAUNCH MEDIA SELECT ยท MEDIA NEXT TRACK ยท MEDIA PLAY PAUSE ยท MEDIA PREV TRACK ยท MEDIA STOP ยท RCONTROL ยท SLEEP ยท VOLUME DOWN ยท VOLUME MUTE ยท VOLUME UP
212CLEAR ยท DBE FLUSHSTRING ยท F18 ยท F19 ยท F20 ยท F21 ยท F22 ยท F23 ยท F24
213ABNT C2 ยท F16 ยท F17 ยท OEM AUTO
214CAPITAL
216APPS ยท LWIN ยท NUMLOCK ยท PAUSE ยท RWIN ยท SCROLL
217DELETE ยท DOWN ยท END ยท F1 ยท F10 ยท F11 ยท F12 ยท F13 ยท F14 ยท F15 ยท F2 ยท F3 ยท F4 ยท F5 ยท F6 ยท F7 ยท F8 ยท F9 ยท HOME ยท INSERT ยท LCONTROL ยท LEFT ยท LMENU ยท LSHIFT ยท NEXT ยท PRIOR ยท RIGHT ยท RSHIFT ยท SNAPSHOT ยท UP

By least stable

PositionsVirtual keys at this number of different positions across all drivers
6KANA
4F13 ยท F14 ยท F15 ยท NONAME
3CONVERT ยท DBE KATAKANA ยท HANJA ยท NONCONVERT ยท OEM AUTO ยท SNAPSHOT
2APPS ยท CAPITAL ยท DBE NOCODEINPUT ยท DELETE ยท DOWN ยท END ยท F1 ยท F10 ยท F11 ยท F12 ยท F16 ยท F17 ยท F2 ยท F3 ยท F4 ยท F5 ยท F6 ยท F7 ยท F8 ยท F9 ยท HELP ยท HOME ยท INSERT ยท LCONTROL ยท LEFT ยท LMENU ยท LSHIFT ยท LWIN ยท NEXT ยท OEM COPY ยท PRIOR ยท RIGHT ยท RSHIFT ยท RWIN ยท UP
10 ยท 1 ยท 2 ยท 3 ยท 4 ยท 5 ยท 6 ยท 7 ยท 8 ยท 9 ยท ABNT C1 ยท ABNT C2 ยท BROWSER BACK ยท BROWSER FAVORITES ยท BROWSER FORWARD ยท BROWSER HOME ยท BROWSER REFRESH ยท BROWSER SEARCH ยท BROWSER STOP ยท C ยท CLEAR ยท DBE ALPHANUMERIC ยท DBE FLUSHSTRING ยท F18 ยท F19 ยท F20 ยท F21 ยท F22 ยท F23 ยท F24 ยท G ยท IME OFF ยท IME ON ยท J ยท LAUNCH APP1 ยท LAUNCH APP2 ยท LAUNCH MAIL ยท LAUNCH MEDIA SELECT ยท MEDIA NEXT TRACK ยท MEDIA PLAY PAUSE ยท MEDIA PREV TRACK ยท MEDIA STOP ยท NUMLOCK ยท OEM 1 ยท OEM 102 ยท OEM 2 ยท OEM 3 ยท OEM 4 ยท OEM 5 ยท OEM 6 ยท OEM 7 ยท OEM 8 ยท OEM AX ยท OEM BACKTAB ยท OEM COMMA ยท OEM JUMP ยท OEM MINUS ยท OEM PA1 ยท OEM PA2 ยท OEM PA3 ยท OEM PERIOD ยท OEM PLUS ยท OEM RESET ยท OEM WSCTRL ยท P ยท PAUSE ยท Q ยท R ยท RCONTROL ยท RMENU ยท SCROLL ยท SLEEP ยท T ยท V ยท VOLUME DOWN ยท VOLUME MUTE ยท VOLUME UP ยท W ยท X ยท Y ยท Z

Unused virtual keys

The following table shows virtual keys that are not used, ordered by the number of drivers that don't use the specific virtual key. Notably, the first row shows virtual keys that are defined in the SDK but not mapped to any physical key by any of the system keyboard drivers.

DriversVirtual keys not used in this number of drivers
217ACCEPT ยท CONTROL ยท CRSEL ยท DBE CODEINPUT ยท DBE ENTERDLGCONVERSIONMODE ยท DBE ENTERIMECONFIGMODE ยท DBE NOROMAN ยท EXECUTE ยท FINAL ยท ICO 00 ยท ICO CLEAR ยท ICO HELP ยท JUNJA ยท LBUTTON ยท MBUTTON ยท MENU ยท MODECHANGE ยท OEM CLEAR ยท OEM CUSEL ยท OEM ENLW ยท OEM FJ LOYA ยท OEM FJ MASSHOU ยท OEM FJ ROYA ยท OEM FJ TOUROKU ยท PACKET ยท POWER ยท PRINT ยท PROCESSKEY ยท RBUTTON ยท SELECT ยท SHIFT ยท XBUTTON1 ยท XBUTTON2
216OEM AX
214DBE ALPHANUMERIC ยท IME OFF ยท IME ON
213OEM COPY ยท OEM NEC EQUAL ยท SEPARATOR
210HANJA ยท NONAME
209CONVERT
208NONCONVERT
207KANA
204OEM PA2
190OEM 8
12OEM 102
9ABNT C1 ยท DBE NOCODEINPUT ยท HELP ยท OEM BACKTAB ยท OEM JUMP ยท OEM PA1 ยท OEM PA3 ยท OEM RESET ยท OEM WSCTRL ยท RMENU
8OEM PLUS
7BROWSER BACK ยท BROWSER FAVORITES ยท BROWSER FORWARD ยท BROWSER HOME ยท BROWSER REFRESH ยท BROWSER SEARCH ยท BROWSER STOP ยท DBE KATAKANA ยท LAUNCH APP1 ยท LAUNCH APP2 ยท LAUNCH MAIL ยท LAUNCH MEDIA SELECT ยท MEDIA NEXT TRACK ยท MEDIA PLAY PAUSE ยท MEDIA PREV TRACK ยท MEDIA STOP ยท RCONTROL ยท SLEEP ยท VOLUME DOWN ยท VOLUME MUTE ยท VOLUME UP
5CLEAR ยท DBE FLUSHSTRING ยท F18 ยท F19 ยท F20 ยท F21 ยท F22 ยท F23 ยท F24
4F16 ยท F17
3ABNT C2 ยท CAPITAL ยท OEM AUTO ยท OEM MINUS
2OEM 7
1APPS ยท LWIN ยท NUMLOCK ยท OEM 3 ยท OEM 5 ยท PAUSE ยท RWIN ยท SCROLL
00 ยท 1 ยท 2 ยท 3 ยท 4 ยท 5 ยท 6 ยท 7 ยท 8 ยท 9 ยท A ยท ADD ยท B ยท BACK ยท C ยท CANCEL ยท D ยท DECIMAL ยท DELETE ยท DIVIDE ยท DOWN ยท E ยท END ยท ESCAPE ยท F ยท F1 ยท F10 ยท F11 ยท F12 ยท F13 ยท F14 ยท F15 ยท F2 ยท F3 ยท F4 ยท F5 ยท F6 ยท F7 ยท F8 ยท F9 ยท G ยท H ยท HOME ยท I ยท INSERT ยท J ยท K ยท L ยท LCONTROL ยท LEFT ยท LMENU ยท LSHIFT ยท M ยท MULTIPLY ยท N ยท NEXT ยท NUMPAD0 ยท NUMPAD1 ยท NUMPAD2 ยท NUMPAD3 ยท NUMPAD4 ยท NUMPAD5 ยท NUMPAD6 ยท NUMPAD7 ยท NUMPAD8 ยท NUMPAD9 ยท O ยท OEM 1 ยท OEM 2 ยท OEM 4 ยท OEM 6 ยท OEM COMMA ยท OEM PERIOD ยท P ยท PRIOR ยท Q ยท R ยท RETURN ยท RIGHT ยท RSHIFT ยท S ยท SNAPSHOT ยท SPACE ยท SUBTRACT ยท T ยท TAB ยท U ยท UP ยท V ยท W ยท X ยท Y ยท Z

Similarly, the last row shows list of virtual keys that are mapped by all system keyboard drivers. Note that for each virtual key, the driver counts in all tables above should add up to 217 (unless a driver uses the same virtual key on both textual and non-textual keys).