As of Windows 10.0.27729.1000
Numbers represent the number of keys defined for given shift state.
To obtain an additional shift state, some keyboards have extra physical keys (such as VK_KANA), and some map physical keys to uncommon virtual keys (e.g. VK_OEM_8 in Canadian Multilingual Standard is mapped to the right Ctrl key), so make sure to check key mappings for these.
VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | Σ | |
---|---|---|---|---|---|---|---|
VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | ||
VK_MENU | VK_MENU | VK_MENU | VK_MENU | VK_MENU | VK_MENU | ||
VK_OEM_8 | VK_OEM_8 | VK_OEM_8 | VK_OEM_8 | VK_OEM_8 | VK_OEM_8 | ||
Canadian Multilingual Standard | 60 | 60 | 6 | 34 | 44 | 16 | 220 |
VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | Σ | |
---|---|---|---|---|---|---|---|---|---|
VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | ||
VK_KANA | VK_KANA | VK_KANA | VK_KANA | VK_KANA | VK_KANA | VK_KANA | VK_KANA | ||
JP Japanese Keyboard Layout for (NEC PC-9800 Windows 95) | 71 | 62 | 12 | 72 | 3 | 62 | 12 | 3 | 297 |
JP Japanese Keyboard Layout for (NEC PC-9800 on PC98-NX) | 62 | 63 | 12 | 63 | 3 | 63 | 12 | 3 | 281 |
JP Japanese Keyboard Layout for (NEC PC-9800) | 61 | 62 | 12 | 62 | 3 | 62 | 12 | 3 | 277 |
JP Japanese NEC PC-9800 Keyboard Layout | 60 | 61 | 12 | 61 | 3 | 61 | 12 | 3 | 273 |
JP Japanese Keyboard Layout for 101 | 60 | 60 | 10 | 60 | 3 | 60 | 10 | 3 | 266 |
JP Japanese Keyboard Layout for AX2 | 60 | 60 | 10 | 60 | 3 | 60 | 10 | 3 | 266 |
Japanese | 60 | 60 | 10 | 60 | 3 | 60 | 10 | 3 | 266 |
JP Japanese Keyboard Layout for 106 | 60 | 59 | 10 | 60 | 3 | 60 | 10 | 3 | 265 |
JP Japanese Keyboard Layout for 106 | 60 | 59 | 10 | 60 | 3 | 60 | 10 | 3 | 265 |
JP Japanese Keyboard Layout for IBM 5576-002/003 | 60 | 59 | 10 | 60 | 3 | 60 | 10 | 3 | 265 |
DEC LK411-AJ Keyboard Layout | 59 | 59 | 9 | 59 | 3 | 59 | 9 | 3 | 260 |
Ordered by number of shift states and the total number of keys defined.
VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | VK_SHIFT | Σ | |
---|---|---|---|---|---|---|---|
VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | VK_CONTROL | ||
VK_MENU | VK_MENU | VK_MENU | VK_MENU | VK_MENU | VK_MENU | ||
Vietnamese | 60 | 60 | 10 | 2 | 48 | 48 | 228 |
Khmer | 59 | 59 | 22 | 0 | 41 | 44 | 225 |
Myanmar (Phonetic order) Myanmar (Visual order) |
60 | 60 | 5 | 0 | 49 | 49 | 223 |
Inuktitut - Nattilik | 60 | 60 | 9 | 3 | 45 | 45 | 222 |
Colemak | 60 | 60 | 8 | 3 | 49 | 36 | 216 |
Cherokee Nation | 59 | 59 | 5 | 0 | 46 | 44 | 213 |
French (Standard, AZERTY) | 60 | 60 | 9 | 3 | 48 | 31 | 211 |
Dzongkha | 59 | 58 | 5 | 0 | 46 | 41 | 209 |
French (Standard, BÉPO) | 60 | 60 | 8 | 3 | 46 | 32 | 209 |
Inuktitut - Latin | 60 | 60 | 6 | 0 | 42 | 40 | 208 |
Inuktitut - Naqittaut | 60 | 60 | 6 | 0 | 42 | 39 | 207 |
United States-International | 60 | 60 | 10 | 3 | 37 | 23 | 193 |
Greek Latin | 60 | 60 | 10 | 2 | 37 | 23 | 192 |
Setswana Sesotho sa Leboa |
60 | 60 | 10 | 0 | 38 | 24 | 192 |
Canadian French (Legacy) | 60 | 60 | 11 | 1 | 34 | 18 | 184 |
German Extended (E1) | 60 | 60 | 8 | 3 | 49 | 1 | 181 |
German Extended (E2) | 60 | 60 | 8 | 3 | 49 | 1 | 181 |
Turkish F | 60 | 60 | 10 | 3 | 34 | 14 | 181 |
Tamil Anjal English (India) |
60 | 60 | 9 | 1 | 25 | 25 | 180 |
Swedish with Sami Finnish with Sami |
60 | 60 | 6 | 0 | 31 | 18 | 175 |
Latvian (QWERTY) | 60 | 60 | 10 | 3 | 22 | 20 | 175 |
Hebrew (Standard) | 60 | 60 | 10 | 0 | 35 | 9 | 174 |
Hungarian 101-key | 60 | 60 | 9 | 3 | 42 | 0 | 174 |
Hungarian | 60 | 60 | 11 | 2 | 41 | 0 | 174 |
Latvian | 60 | 60 | 10 | 2 | 22 | 20 | 174 |
Norwegian with Sami | 60 | 60 | 6 | 0 | 30 | 18 | 174 |
Sami Extended Finland-Sweden | 60 | 60 | 6 | 0 | 31 | 17 | 174 |
Sinhala - Wij 9 | 59 | 58 | 6 | 0 | 42 | 9 | 174 |
Sami Extended Norway | 60 | 60 | 6 | 0 | 30 | 17 | 173 |
Tibetan (PRC) - Updated | 59 | 59 | 6 | 0 | 1 | 48 | 173 |
Tibetan (PRC) | 59 | 59 | 6 | 0 | 1 | 48 | 173 |
Slovak | 60 | 60 | 11 | 4 | 37 | 0 | 172 |
Hebrew (Standard, 2018) | 60 | 60 | 10 | 0 | 32 | 9 | 171 |
Latvian (Standard) | 60 | 60 | 10 | 0 | 21 | 19 | 170 |
Georgian (Old Alphabets) | 60 | 60 | 6 | 0 | 29 | 14 | 169 |
Nepali | 59 | 59 | 5 | 16 | 14 | 16 | 169 |
Slovak (QWERTY) | 60 | 60 | 11 | 1 | 37 | 0 | 169 |
Armenian Phonetic | 60 | 60 | 6 | 0 | 21 | 21 | 168 |
Devanagari - INSCRIPT | 60 | 60 | 10 | 5 | 23 | 10 | 168 |
Igbo | 60 | 60 | 10 | 0 | 21 | 17 | 168 |
Marathi | 58 | 56 | 6 | 3 | 21 | 23 | 167 |
Czech | 60 | 60 | 9 | 3 | 34 | 0 | 166 |
Czech (QWERTY) | 60 | 60 | 11 | 0 | 23 | 12 | 166 |
Czech Programmers | 60 | 60 | 11 | 0 | 23 | 12 | 166 |
Hindi Traditional | 58 | 56 | 6 | 3 | 21 | 22 | 166 |
Pashto (Afghanistan) | 59 | 59 | 5 | 0 | 43 | 0 | 166 |
Greek Polytonic | 60 | 60 | 11 | 4 | 23 | 7 | 165 |
Armenian Typewriter | 59 | 58 | 5 | 0 | 21 | 21 | 164 |
Javanese | 59 | 54 | 10 | 0 | 26 | 15 | 164 |
Romanian (Standard) | 60 | 60 | 6 | 0 | 26 | 12 | 164 |
Syriac Phonetic | 60 | 60 | 8 | 0 | 36 | 0 | 164 |
Syriac | 60 | 60 | 8 | 0 | 36 | 0 | 164 |
Albanian | 60 | 60 | 11 | 1 | 31 | 0 | 163 |
Romanian (Legacy) | 60 | 60 | 9 | 4 | 30 | 0 | 163 |
Standard Slovenian |
60 | 60 | 10 | 3 | 29 | 0 | 162 |
Estonian | 60 | 60 | 11 | 1 | 16 | 14 | 162 |
Romanian (Programmers) | 60 | 60 | 6 | 0 | 27 | 9 | 162 |
Polish (214) | 60 | 60 | 10 | 3 | 27 | 0 | 160 |
ADLaM | 60 | 60 | 5 | 0 | 22 | 12 | 159 |
Spanish Variation | 60 | 60 | 10 | 1 | 28 | 0 | 159 |
Tatar (Legacy) | 60 | 60 | 11 | 1 | 18 | 9 | 159 |
Canadian French | 60 | 60 | 11 | 1 | 26 | 0 | 158 |
Turkish Q | 60 | 60 | 10 | 3 | 23 | 2 | 158 |
Tatar | 60 | 60 | 10 | 0 | 18 | 9 | 157 |
Serbian (Latin) | 60 | 60 | 6 | 0 | 29 | 0 | 155 |
German (IBM) | 60 | 60 | 9 | 2 | 12 | 11 | 154 |
Lithuanian | 60 | 60 | 11 | 2 | 12 | 9 | 154 |
Polish (Programmers) | 60 | 60 | 12 | 3 | 10 | 9 | 154 |
Greek | 60 | 60 | 11 | 4 | 18 | 0 | 153 |
Portuguese (Brazil ABNT) Portuguese (Brazil ABNT2) |
62 | 62 | 11 | 3 | 14 | 0 | 152 |
Dutch | 60 | 60 | 10 | 1 | 21 | 0 | 152 |
Greek (220) | 60 | 60 | 9 | 4 | 19 | 0 | 152 |
Guarani | 60 | 60 | 10 | 0 | 15 | 7 | 152 |
Osage | 60 | 60 | 6 | 0 | 13 | 13 | 152 |
Georgian (MES) | 60 | 60 | 6 | 0 | 25 | 0 | 151 |
United Kingdom Extended | 60 | 60 | 6 | 0 | 14 | 11 | 151 |
Arabic (102) | 60 | 60 | 10 | 6 | 7 | 7 | 150 |
Arabic (102) AZERTY | 60 | 60 | 10 | 6 | 7 | 7 | 150 |
Belgian (Comma) | 60 | 60 | 11 | 1 | 15 | 3 | 150 |
Belgian French Belgian (Period) |
60 | 60 | 11 | 1 | 15 | 3 | 150 |
Greek (220) Latin | 60 | 60 | 10 | 4 | 16 | 0 | 150 |
Khmer (NIDA) | 59 | 59 | 5 | 0 | 27 | 0 | 150 |
Scottish Gaelic | 60 | 60 | 10 | 2 | 10 | 8 | 150 |
Lithuanian Standard | 60 | 60 | 6 | 0 | 23 | 0 | 149 |
Sinhala | 60 | 60 | 5 | 0 | 24 | 0 | 149 |
Luxembourgish Swiss French |
60 | 60 | 11 | 1 | 16 | 0 | 148 |
Swiss German | 60 | 60 | 11 | 1 | 16 | 0 | 148 |
Faeroese | 60 | 60 | 11 | 1 | 15 | 0 | 147 |
French (Legacy, AZERTY) | 60 | 59 | 11 | 4 | 13 | 0 | 147 |
Irish | 60 | 60 | 10 | 2 | 8 | 7 | 147 |
United Kingdom | 60 | 60 | 10 | 3 | 8 | 6 | 147 |
Icelandic | 60 | 60 | 11 | 1 | 14 | 0 | 146 |
Danish | 60 | 60 | 11 | 1 | 13 | 0 | 145 |
Finnish | 60 | 60 | 11 | 1 | 13 | 0 | 145 |
German | 60 | 60 | 9 | 3 | 12 | 1 | 145 |
Greenlandic | 60 | 60 | 6 | 0 | 17 | 2 | 145 |
Maltese 48-Key | 60 | 60 | 6 | 0 | 10 | 9 | 145 |
Swedish | 60 | 60 | 11 | 1 | 13 | 0 | 145 |
Bangla | 56 | 51 | 5 | 3 | 21 | 8 | 144 |
Hausa | 60 | 60 | 10 | 0 | 9 | 5 | 144 |
New Tai Lue | 59 | 60 | 5 | 0 | 20 | 0 | 144 |
Norwegian | 60 | 60 | 11 | 1 | 12 | 0 | 144 |
Yoruba | 60 | 60 | 10 | 0 | 8 | 6 | 144 |
Macedonian | 60 | 60 | 11 | 1 | 11 | 0 | 143 |
Sorbian Extended | 60 | 60 | 6 | 0 | 17 | 0 | 143 |
Sorbian Standard (Legacy) | 60 | 60 | 6 | 0 | 17 | 0 | 143 |
Spanish | 60 | 60 | 10 | 1 | 12 | 0 | 143 |
Wolof | 60 | 60 | 10 | 0 | 13 | 0 | 143 |
Central Atlas Tamazight | 60 | 59 | 10 | 0 | 13 | 0 | 142 |
Hawaiian | 60 | 60 | 10 | 0 | 6 | 6 | 142 |
Italian (142) | 60 | 60 | 11 | 1 | 10 | 0 | 142 |
Macedonian - Standard | 60 | 60 | 5 | 0 | 17 | 0 | 142 |
Maltese 47-Key | 59 | 59 | 5 | 0 | 10 | 9 | 142 |
Odia | 57 | 52 | 6 | 3 | 17 | 6 | 141 |
Georgian (Ergonomic) | 60 | 27 | 6 | 0 | 28 | 19 | 140 |
Italian | 60 | 60 | 11 | 1 | 6 | 2 | 140 |
Hebrew | 60 | 60 | 10 | 4 | 6 | 0 | 140 |
Bosnian (Cyrillic) | 60 | 60 | 6 | 0 | 13 | 0 | 139 |
Portuguese | 60 | 60 | 7 | 1 | 11 | 0 | 139 |
Kyrgyz Cyrillic | 60 | 60 | 8 | 3 | 4 | 3 | 138 |
Latin American | 60 | 60 | 11 | 1 | 6 | 0 | 138 |
Sorbian Standard | 60 | 60 | 6 | 0 | 12 | 0 | 138 |
Lithuanian IBM | 60 | 60 | 10 | 2 | 5 | 0 | 137 |
Malayalam | 58 | 53 | 5 | 3 | 11 | 7 | 137 |
Tifinagh (Extended) | 60 | 60 | 5 | 0 | 12 | 0 | 137 |
Tamil | 56 | 51 | 5 | 3 | 21 | 0 | 136 |
Telugu | 57 | 52 | 6 | 3 | 15 | 3 | 136 |
Azerbaijani Cyrillic | 60 | 60 | 10 | 3 | 2 | 0 | 135 |
Divehi Phonetic | 60 | 60 | 9 | 0 | 6 | 0 | 135 |
Divehi Typewriter | 60 | 60 | 9 | 0 | 6 | 0 | 135 |
Greek (319) | 60 | 60 | 10 | 3 | 2 | 0 | 135 |
Kannada | 57 | 52 | 6 | 3 | 13 | 4 | 135 |
Gujarati | 57 | 53 | 6 | 3 | 12 | 3 | 134 |
Lao | 59 | 59 | 6 | 0 | 10 | 0 | 134 |
Russian - Mnemonic | 60 | 60 | 8 | 3 | 3 | 0 | 134 |
Ukrainian | 60 | 60 | 11 | 1 | 1 | 1 | 134 |
Russian (Typewriter) | 60 | 60 | 11 | 1 | 1 | 0 | 133 |
Georgian (Legacy) | 60 | 60 | 6 | 0 | 6 | 0 | 132 |
Punjabi | 55 | 48 | 6 | 3 | 17 | 3 | 132 |
Russian | 60 | 60 | 8 | 3 | 1 | 0 | 132 |
Greek (319) Latin | 60 | 60 | 9 | 1 | 1 | 0 | 131 |
Phags-pa | 59 | 48 | 10 | 0 | 12 | 2 | 131 |
Georgian (QWERTY) | 60 | 42 | 6 | 0 | 22 | 0 | 130 |
Serbian (Cyrillic) | 60 | 60 | 6 | 0 | 3 | 0 | 129 |
Azerbaijani Latin | 60 | 60 | 6 | 0 | 2 | 0 | 128 |
Turkmen | 60 | 60 | 6 | 0 | 2 | 0 | 128 |
Ukrainian (Enhanced) | 60 | 60 | 6 | 0 | 1 | 1 | 128 |
Bulgarian (Phonetic Traditional) | 60 | 60 | 5 | 0 | 0 | 2 | 127 |
Sakha | 60 | 60 | 6 | 0 | 1 | 0 | 127 |
Bashkir | 59 | 59 | 6 | 0 | 1 | 0 | 125 |
Azerbaijani (Standard) | 58 | 58 | 5 | 0 | 2 | 0 | 123 |
Tifinagh (Basic) | 55 | 39 | 5 | 0 | 12 | 0 | 111 |
Tai Le | 57 | 33 | 5 | 0 | 10 | 0 | 105 |