Кодировка клавиш клавиатуры
Виртуальные коды клавиш (Virtual-Key Codes)
05.11.2021
17915
В закладкиВ следующей таблице приведены имена констант (VK Codes), десятичные и шестнадцатеричные значения для кодов виртуальных клавиш, используемых в системах Windows.
Название клавиши | DEC | HEX | Константа |
---|---|---|---|
Left Button | 1 | 0x01 | VK_LBUTTON |
Right Button | 2 | 0x02 | VK_RBUTTON |
Middle Button | 4 | 0x04 | VK_MBUTTON |
X Button 1 | 5 | 0x05 | VK_XBUTTON1 |
X Button 2 | 6 | 0x06 | VK_XBUTTON2 |
Esc | 27 | 0x1B | VK_ESCAPE |
← Backspace | 8 | 0x08 | VK_BACK |
Tab ↹ | 9 | 0x09 | VK_TAB |
↵ Enter | 13 | 0x0D | VK_RETURN |
⇧ Shift | 16 | 0x10 | VK_SHIFT |
⇧ Shift левый | 160 | 0xA0 | VK_LSHIFT |
⇧ Shift правый | 161 | 0xA1 | VK_RSHIFT |
Ctrl | 17 | 0x11 | VK_CONTROL |
Ctrl левый | 162 | 0xA2 | VK_LCONTROL |
Ctrl правый | 163 | 0xA3 | VK_RCONTROL |
Alt | 18 | 0x12 | VK_MENU |
Alt левый | 164 | 0xA4 | VK_LMENU |
Alt правый | 165 | 0xA5 | VK_RMENU |
⊞ Win левый | 91 | 0x5B | VK_LWIN |
⊞ Win правый | 92 | 0x5C | VK_RWIN |
Caps Lock | 20 | 0x14 | VK_CAPITAL |
Num Lock | 144 | 0x90 | VK_NUMLOCK |
Scrol Lock | 145 | 0x91 | VK_SCROLL |
Pause/Break | 19 | 0x13 | VK_PAUSE |
Ctrl + Pause/Break | 3 | 0x03 | VK_CANCEL |
End | 35 | 0x23 | VK_END |
Home | 36 | 0x24 | VK_HOME |
Пробел | 32 | 0x20 | VK_SPACE |
Page Up | 33 | 0x21 | VK_PRIOR |
Page Down | 34 | 0x22 | VK_NEXT |
Clear | 12 | 0x0C | VK_CLEAR |
← | 37 | 0x25 | VK_LEFT |
↑ | 38 | 0x26 | VK_UP |
→ | 39 | 0x27 | VK_RIGHT |
↓ | 40 | 0x28 | VK_DOWN |
Select | 41 | 0x29 | VK_SELECT |
42 | 0x2A | VK_PRINT | |
Execute | 43 | 0x2B | VK_EXECUTE |
Print Screen | 44 | 0x2C | VK_SNAPSHOT |
Insert | 45 | 0x2D | VK_INSERT |
Delete | 46 | 0x2E | VK_DELETE |
Help | 47 | 0x2F | VK_HELP |
0 | 48 | 0x30 | VK_0 |
1 | 49 | 0x31 | VK_1 |
2 | 50 | 0x32 | VK_2 |
3 | 51 | 0x33 | VK_3 |
4 | 52 | 0x34 | VK_4 |
5 | 53 | 0x35 | VK_5 |
6 | 54 | 0x36 | VK_6 |
7 | 55 | 0x37 | VK_7 |
8 | 56 | 0x38 | VK_8 |
9 | 57 | 0x39 | VK_9 |
A | 65 | 0x41 | VK_A |
B | 66 | 0x42 | VK_B |
C | 67 | 0x43 | VK_C |
D | 68 | 0x44 | VK_D |
E | 69 | 0x45 | VK_E |
F | 70 | 0x46 | VK_F |
G | 71 | 0x47 | VK_G |
H | 72 | 0x48 | VK_H |
I | 73 | 0x49 | VK_I |
J | 74 | 0x4A | VK_J |
K | 75 | 0x4B | VK_K |
L | 76 | 0x4C | VK_L |
M | 77 | 0x4D | VK_M |
N | 78 | 0x4E | VK_N |
O | 79 | 0x4F | VK_O |
P | 80 | 0x50 | VK_P |
Q | 81 | 0x51 | VK_Q |
R | 82 | 0x52 | VK_R |
S | 83 | 0x53 | VK_S |
T | 83 | 0x54 | VK_T |
U | 85 | 0x55 | VK_U |
V | 86 | 0x56 | VK_V |
W | 87 | 0x57 | VK_W |
X | 88 | 0x58 | VK_X |
Y | 89 | 0x59 | VK_Y |
Z | 90 | 0x5A | VK_Z |
Context Menu | 93 | 0x5D | VK_APPS |
Sleep | 95 | 0x5F | VK_SLEEP |
Numpad 0 | 96 | 0x60 | VK_NUMPAD0 |
Numpad 1 | 97 | 0x61 | VK_NUMPAD1 |
Numpad 2 | 98 | 0x62 | VK_NUMPAD2 |
Numpad 3 | 99 | 0x63 | VK_NUMPAD3 |
Numpad 4 | 100 | 0x64 | VK_NUMPAD4 |
Numpad 5 | 101 | 0x65 | VK_NUMPAD5 |
Numpad 6 | 102 | 0x66 | VK_NUMPAD6 |
Numpad 7 | 103 | 0x67 | VK_NUMPAD7 |
Numpad 8 | 104 | 0x68 | VK_NUMPAD8 |
Numpad 9 | 105 | 0x69 | VK_NUMPAD9 |
Numpad * | 106 | 0x6A | VK_MULTIPLY |
Numpad + | 107 | 0x6B | VK_ADD |
Separator | 108 | 0x6C | VK_SEPARATOR |
Numpad - | 109 | 0x6D | VK_SUBTRACT |
Numpad . (Del) | 110 | 0x6E | VK_DECIMAL |
Numpad / | 111 | 0x6F | VK_DIVIDE |
Numpad Enter | 13 | 0x0D | VK_RETURN |
F1 | 112 | 0x70 | VK_F1 |
F2 | 113 | 0x71 | VK_F2 |
F3 | 114 | 0x72 | VK_F3 |
F4 | 115 | 0x73 | VK_F4 |
F5 | 116 | 0x74 | VK_F5 |
F6 | 117 | 0x75 | VK_F6 |
F7 | 118 | 0x76 | VK_F7 |
F8 | 119 | 0x77 | VK_F8 |
F9 | 120 | 0x78 | VK_F9 |
F10 | 121 | 0x79 | VK_F10 |
F11 | 122 | 0x7A | VK_F11 |
F12 | 123 | 0x7B | VK_F12 |
F13 | 124 | 0x7C | VK_F13 |
F14 | 125 | 0x7D | VK_F14 |
F15 | 126 | 0x7E | VK_F15 |
F16 | 127 | 0x7F | VK_F16 |
F17 | 128 | 0x80 | VK_F17 |
F18 | 129 | 0x81 | VK_F18 |
F19 | 130 | 0x82 | VK_F19 |
F20 | 131 | 0x83 | VK_F20 |
F21 | 132 | 0x84 | VK_F21 |
F22 | 133 | 0x85 | VK_F22 |
F23 | 134 | 0x86 | VK_F23 |
F24 | 135 | 0x87 | VK_F24 |
Browser Back | 166 | 0xA6 | VK_BROWSER_BACK |
Browser Forward | 167 | 0xA7 | VK_BROWSER_FORWARD |
Browser Refresh | 168 | 0xA8 | VK_BROWSER_REFRESH |
Browser Stop | 169 | 0xA9 | VK_BROWSER_STOP |
Browser Search | 170 | 0xAA | VK_BROWSER_SEARCH |
Browser Favorites | 171 | 0xAB | VK_BROWSER_FAVORITES |
Browser Home | 172 | 0xAC | VK_BROWSER_HOME |
Volume Mute | 173 | 0xAD | VK_VOLUME_MUTE |
Volume Down | 174 | 0xAE | VK_VOLUME_DOWN |
Volume Up | 175 | 0xAF | VK_VOLUME_UP |
Next Track | 176 | 0xB0 | VK_MEDIA_NEXT_TRACK |
Previous Track | 177 | 0xB1 | VK_MEDIA_PREV_TRACK |
Stop | 178 | 0xB2 | VK_MEDIA_STOP |
Play / Pause | 179 | 0xB3 | VK_MEDIA_PLAY_PAUSE |
180 | 0xB4 | VK_LAUNCH_MAIL | |
Media | 181 | 0xB5 | VK_LAUNCH_MEDIA_SELECT |
Проводник | 182 | 0xB6 | VK_LAUNCH_APP1 |
Калькулятор | 183 | 0xB7 | VK_LAUNCH_APP2 |
; : | 186 | 0xBA | VK_OEM_1 |
= + | 187 | 0xBB | VK_OEM_PLUS |
, < | 188 | 0xBC | VK_OEM_COMMA |
- _ | 189 | 0xBD | VK_OEM_MINUS |
. > | 190 | 0xBE | VK_OEM_PERIOD |
/ ? | 191 | 0xBF | VK_OEM_2 |
~ | 192 | 0xC0 | VK_OEM_3 |
Abnt C1 | 193 | 0xC1 | – |
Abnt C2 | 193 | 0xC2 | – |
] } | 219 | 0xDB | VK_OEM_4 |
| | 229 | 0xDC | VK_OEM_5 |
] } | 221 | 0xDD | VK_OEM_6 |
' " | 222 | 0xDE | VK_OEM_7 |
Разные знаки, может изменяться клавиатурой | 223 | 0xDF | VK_OEM_8 |
Ax | 225 | 0xE1 | – |
> < | 226 | 0xE2 | VK_OEM_102 |
IcoHlp | 227 | 0xE3 | – |
Process | 229 | 0xE5 | VK_PROCESSKEY |
IcoClr | 230 | 0xE6 | – |
Packet | 231 | 0xE7 | VK_PACKET |
Reset | 233 | 0xE9 | – |
Jump | 234 | 0xEA | – |
OemPa1 | 235 | 0xEB | – |
OemPa2 | 236 | 0xEC | – |
OemPa3 | 237 | 0xED | – |
WsCtrl | 238 | 0xEE | – |
Cu Sel | 239 | 0xEF | – |
Oem Attn | 240 | 0xF0 | – |
Finish | 241 | 0xF1 | – |
Copy | 242 | 0xF2 | – |
Auto | 243 | 0xF3 | – |
Enlw | 244 | 0xF4 | – |
Back Tab | 245 | 0xF5 | – |
Attn | 246 | 0xF6 | VK_ATTN |
Cr Sel | 247 | 0xF7 | VK_CRSEL |
Ex Sel | 248 | 0xF8 | VK_EXSEL |
Er Eof | 249 | 0xF9 | VK_EREOF |
Play | 250 | 0xFA | VK_PLAY |
Zoom | 251 | 0xFB | VK_ZOOM |
Зарезервировано | 252 | 0xFC | VK_NONAME |
Pa1 | 253 | 0xFD | VK_PA1 |
OemClr | 254 | 0xFE | VK_OEM_CLEAR |
Kana | 21 | 0x15 | VK_KANA, VK_HANGUEL, VK_HANGUL |
IME On | 22 | 0x16 | VK_IME_ON |
Junja | 23 | 0x17 | VK_JUNJA |
Final | 24 | 0x18 | VK_FINAL |
Kanji | 25 | 0x19 | VK_KANJI, VK_HANJA |
IME Off | 26 | 0x1A | VK_IME_OFF |
Jisho | 146 | 0x92 | – |
Mashu | 147 | 0x93 | – |
Touroku | 148 | 0x94 | – |
Loya | 149 | 0x95 | – |
Roya | 150 | 0x96 | – |
Convert | 28 | 0x1C | VK_CONVERT |
Non Convert | 29 | 0x1D | VK_NONCONVERT |
Accept | 30 | 0x1E | VK_ACCEPT |
Mode Change | 31 | 0x1F | VK_MODECHANGE |
05. 11.2021, обновлено 22.12.2022
17915
#Клавиатура
В закладкиДругие публикации
Как отследить нажатие клавиш JQuery?
В событиях – keydown(), keyup(), keypress() можно получить нажатые клавиши в шести свойствах. Получить их можно из...
Горячие клавиши Google Chrome
Список сочетаний клавиш, которые можно использовать в Google Chrome для Windows и MacOS.
Таблица Alt-кодов
Alt-код – метод вставки символа сочетанием нажатой клавиши Alt и числа, набранного на цифровой клавиатуре (Num Lock должен быть включен).
Виртуальные коды клавиш (Winuser.h) - Win32 apps
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 5 мин
В следующей таблице показаны символьные имена констант, шестнадцатеричные значения и эквиваленты мыши или клавиатуры для кодов виртуальных ключей, используемых системой. Коды перечислены в числовом порядке.
Константа | Значение | Описание |
---|---|---|
VK_LBUTTON | 0x01 | Левая кнопка мыши |
VK_RBUTTON | 0x02 | Правая кнопка мыши |
VK_CANCEL | 0x03 | Обработка прерывания управления |
VK_MBUTTON | 0x04 | Средняя кнопка мыши (мышь с тремя кнопками) |
VK_XBUTTON1 | 0x05 | Кнопка мыши X1 |
VK_XBUTTON2 | 0x06 | Кнопка мыши X2 |
- | 0x07 | Не определено. |
VK_BACK | 0x08 | Backspace |
VK_TAB | 0x09 | TAB - клавиша |
- | 0x0A-0B | Зарезервированное |
VK_CLEAR | 0x0C | Клавиша CLEAR |
VK_RETURN | 0x0D | ВВОД клавиши |
- | 0x0E-0F | Не определено. |
VK_SHIFT | 0x10 | Клавиша SHIFT |
VK_CONTROL | 0x11 | Клавиша CTRL |
VK_MENU | 0x12 | ALT - клавиша |
VK_PAUSE | 0x13 | Клавиша PAUSE |
VK_CAPITAL | 0x14 | Клавиша CAPS LOCK |
VK_KANA | 0x15 | Режим "Кана" редактора метода ввода |
VK_HANGUEL | 0x15 | Режим IME Hanguel (поддерживается для совместимости; использование VK_HANGUL ) |
VK_HANGUL | 0x15 | Режим "Хангыль" редактора метода ввода |
VK_IME_ON | 0x16 | Включение IME |
VK_JUNJA | 0x17 | Режим "Джунджа" редактора метода ввода |
VK_FINAL | 0x18 | Последний режим редактора метода ввода |
VK_HANJA | 0x19 | Режим "Ханджа" редактора метода ввода |
VK_KANJI | 0x19 | Режим "Кандзи" редактора метода ввода |
VK_IME_OFF | 0x1A | IME Выкл. |
VK_ESCAPE | 0x1B | Клавиша ESC |
VK_CONVERT | 0x1C | Преобразование в редакторе метода ввода |
VK_NONCONVERT | 0x1D | Нет преобразования в редакторе метода ввода |
VK_ACCEPT | 0x1E | Принять IME |
VK_MODECHANGE | 0x1F | Запрос на изменение режима редактора метода ввода |
VK_SPACE | 0x20 | ПРОБЕЛ |
VK_PRIOR | 0x21 | КЛЮЧ PAGE UP |
VK_NEXT | 0x22 | КЛАВИША PAGE DOWN |
VK_END | 0x23 | КЛАВИША END |
VK_HOME | 0x24 | Ключ HOME |
VK_LEFT | 0x25 | КЛАВИША СТРЕЛКА ВЛЕВО |
VK_UP | 0x26 | КЛАВИША СТРЕЛКА ВВЕРХ |
VK_RIGHT | 0x27 | КЛАВИША СТРЕЛКА ВПРАВО |
VK_DOWN | 0x28 | КЛАВИША СТРЕЛКА ВНИЗ |
VK_SELECT | 0x29 | Клавиша SELECT |
VK_PRINT | 0x2A | Клавиша PRINT |
VK_EXECUTE | 0x2B | КЛАВИША EXECUTE |
VK_SNAPSHOT | 0x2C | КЛАВИША PRINT SCREEN |
VK_INSERT | 0x2D | Ключ INS |
VK_DELETE | 0x2E | Клавиша DEL |
VK_HELP | 0x2F | Ключ HELP |
0x30 | 0 клавиш | |
0x31 | 1 ключ | |
0x32 | 2 клавиши | |
0x33 | 3 ключа | |
0x34 | 4 ключа | |
0x35 | 5 клавиш | |
0x36 | 6 клавиш | |
0x37 | 7 клавиш | |
0x38 | 8 клавиш | |
0x39 | 9 клавиш | |
- | 0x3A-40 | Не определено. |
0x41 | Ключ | |
0x42 | Клавиша B | |
0x43 | Ключ C | |
0x44 | Ключ D | |
0x45 | Ключ E | |
0x46 | Клавиша F | |
0x47 | Ключ G | |
0x48 | Ключ H | |
0x49 | Я ключ | |
0x4A | J-ключ | |
0x4B | Клавиша K | |
0x4C | Ключ L | |
0x4D | Ключ M | |
0x4E | N ключ | |
0x4F | Клавиша O | |
0x50 | P-ключ | |
0x51 | Ключ Q | |
0x52 | Ключ R | |
0x53 | Ключ S | |
0x54 | T-ключ | |
0x55 | Ключ U | |
0x56 | Ключ V | |
0x57 | Клавиша W | |
0x58 | X-ключ | |
0x59 | Ключ Y | |
0x5A | Ключ Z | |
VK_LWIN | 0x5B | Левая Windows клавиша (естественная клавиатура) |
VK_RWIN | 0x5C | Правая Windows клавиша (естественная клавиатура) |
VK_APPS | 0x5D | Клавиша "Приложения" (естественная клавиатура) |
- | 0x5E | Зарезервировано |
VK_SLEEP | 0x5F | Клавиша перевода компьютера в спящий режим |
VK_NUMPAD0 | 0x60 | Ключ цифровой клавиатуры 0 |
VK_NUMPAD1 | 0x61 | Ключ цифровой клавиатуры 1 |
VK_NUMPAD2 | 0x62 | Ключ цифровой клавиатуры 2 |
VK_NUMPAD3 | 0x63 | Ключ цифровой клавиатуры 3 |
VK_NUMPAD4 | 0x64 | Ключ цифровой клавиатуры 4 |
VK_NUMPAD5 | 0x65 | Клавиша цифровой клавиатуры 5 |
VK_NUMPAD6 | 0x66 | Клавиша цифровой клавиатуры 6 |
VK_NUMPAD7 | 0x67 | Клавиша цифровой клавиатуры 7 |
VK_NUMPAD8 | 0x68 | Клавиша цифровой клавиатуры 8 |
VK_NUMPAD9 | 0x69 | Клавиша цифровой клавиатуры 9 |
VK_MULTIPLY | 0x6A | Умножение ключа |
VK_ADD | 0x6B | Добавление ключа |
VK_SEPARATOR | 0x6C | Ключ разделителя |
VK_SUBTRACT | 0x6D | Вычитание ключа |
VK_DECIMAL | 0x6E | Десятичный ключ |
VK_DIVIDE | 0x6F | Разделите ключ |
VK_F1 | 0x70 | Клавиша F1 |
VK_F2 | 0x71 | Клавиша F2 |
VK_F3 | 0x72 | Клавиша F3 |
VK_F4 | 0x73 | Клавиша F4 |
VK_F5 | 0x74 | Клавиша F5 |
VK_F6 | 0x75 | Клавиша F6 |
VK_F7 | 0x76 | Клавиша F7 |
VK_F8 | 0x77 | Клавиша F8 |
VK_F9 | 0x78 | Клавиша F9 |
VK_F10 | 0x79 | Клавиша F10 |
VK_F11 | 0x7A | Клавиша F11 |
VK_F12 | 0x7B | Клавиша F12 |
VK_F13 | 0x7C | Клавиша F13 |
VK_F14 | 0x7D | Клавиша F14 |
VK_F15 | 0x7E | Клавиша F15 |
VK_F16 | 0x7F | Клавиша F16 |
VK_F17 | 0x80 | Клавиша F17 |
VK_F18 | 0x81 | Клавиша F18 |
VK_F19 | 0x82 | Клавиша F19 |
VK_F20 | 0x83 | Клавиша F20 |
VK_F21 | 0x84 | Клавиша F21 |
VK_F22 | 0x85 | Клавиша F22 |
VK_F23 | 0x86 | Клавиша F23 |
VK_F24 | 0x87 | Клавиша F24 |
- | 0x88-8F | "Не присвоено" |
VK_NUMLOCK | 0x90 | Ключ NUM LOCK |
VK_SCROLL | 0x91 | Клавиша SCROLL LOCK |
0x92-96 | Изготовитель оборудования | |
- | 0x97-9F | "Не присвоено" |
VK_LSHIFT | 0xA0 | Левая клавиша SHIFT |
VK_RSHIFT | 0xA1 | Правая клавиша SHIFT |
VK_LCONTROL | 0xA2 | Левая клавиша CONTROL |
VK_RCONTROL | 0xA3 | Правая клавиша CONTROL |
VK_LMENU | 0xA4 | Левая клавиша ALT |
VK_RMENU | 0xA5 | Правая клавиша ALT |
VK_BROWSER_BACK | 0xA6 | Клавиша "Назад браузера" |
VK_BROWSER_FORWARD | 0xA7 | Клавиша пересылки браузера |
VK_BROWSER_REFRESH | 0xA8 | Ключ обновления браузера |
VK_BROWSER_STOP | 0xA9 | Клавиша остановки браузера |
VK_BROWSER_SEARCH | 0xAA | Ключ поиска в браузере |
VK_BROWSER_FAVORITES | 0xAB | Ключ избранного браузера |
VK_BROWSER_HOME | 0xAC | Начальный и домашний ключ браузера |
VK_VOLUME_MUTE | 0xAD | Клавиша выключения громкости |
VK_VOLUME_DOWN | 0xAE | Ключ уменьшения громкости |
VK_VOLUME_UP | 0xAF | Ключ увеличения громкости |
VK_MEDIA_NEXT_TRACK | 0xB0 | Следующий ключ отслеживания |
VK_MEDIA_PREV_TRACK | 0xB1 | Предыдущий ключ отслеживания |
VK_MEDIA_STOP | 0xB2 | Остановка ключа мультимедиа |
VK_MEDIA_PLAY_PAUSE | 0xB3 | Воспроизведение и приостановка клавиши мультимедиа |
VK_LAUNCH_MAIL | 0xB4 | Запуск ключа почты |
VK_LAUNCH_MEDIA_SELECT | 0xB5 | Выбор ключа мультимедиа |
VK_LAUNCH_APP1 | 0xB6 | Запуск ключа приложения 1 |
VK_LAUNCH_APP2 | 0xB7 | Запуск ключа приложения 2 |
- | 0xB8-B9 | Зарезервировано |
VK_OEM_1 | 0xBA | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша ";:" |
VK_OEM_PLUS | 0xBB | Для любой страны или региона ключ "+" |
VK_OEM_COMMA | 0xBC | Для любой страны или региона ключ "," |
VK_OEM_MINUS | 0xBD | Для любой страны или региона ключ -" |
VK_OEM_PERIOD | 0xBE | Для любой страны или региона ключ "." |
VK_OEM_2 | 0xBF | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры в США ,/? ключ |
VK_OEM_3 | 0xC0 | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша "~" |
- | 0xC1-D7 | Зарезервировано |
- | 0xD8-DA | "Не присвоено" |
VK_OEM_4 | 0xDB | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша "[{" |
VK_OEM_5 | 0xDC | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша "\|" |
VK_OEM_6 | 0xDD | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша "]}" |
VK_OEM_7 | 0xDE | Используется для прочих символов; Он может отличаться по клавиатуре. Для стандартной клавиатуры США клавиша single-quote/double-quote |
VK_OEM_8 | 0xDF | Используется для прочих символов; Он может отличаться по клавиатуре. |
- | 0xE0 | Зарезервировано |
0xE1 | Конкретный изготовитель оборудования | |
VK_OEM_102 | 0xE2 | <> Клавиши на стандартной клавиатуре США или клавиши \\| на клавиатуре, отличной от США 102 |
0xE3-E4 | Конкретный изготовитель оборудования | |
VK_PROCESSKEY | 0xE5 | Ключ IME PROCESS |
0xE6 | Конкретный изготовитель оборудования | |
VK_PACKET | 0xE7 | Используется для передачи символов в Юникоде в виде нажатия клавиш. Ключ VK_PACKET — это низкое слово 32-разрядного значения виртуального ключа, используемого для методов ввода без клавиатуры. Дополнительные сведения см. в примечаниях, KEYBDINPUT SendInput WM_KEYDOWN а такжеWM_KEYUP |
- | 0xE8 | "Не присвоено" |
0xE9-F5 | Конкретный изготовитель оборудования | |
VK_ATTN | 0xF6 | Ключ Attn |
VK_CRSEL | 0xF7 | Ключ CrSel |
VK_EXSEL | 0xF8 | Ключ ExSel |
VK_EREOF | 0xF9 | Удаление ключа EOF |
VK_PLAY | 0xFA | Клавиша воспроизведения |
VK_ZOOM | 0xFB | Ключ масштабирования |
VK_NONAME | 0xFC | Зарезервировано |
VK_PA1 | 0xFD | Ключ PA1 |
VK_OEM_CLEAR | 0xFE | Очистить ключ |
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Заголовок | Winuser. h |
: Кодирование клавиатуры Руководство по программированию Xlib
: Кодирование клавиатуры KeyCode представляет собой физический (или логический) ключ. Коды ключей лежат в диапазоне [8,255]. Значение KeyCode не несет внутренней информации, хотя разработчики сервера могут попытаться закодировать геометрию (например, матричную) информацию каким-либо образом, чтобы она могла интерпретироваться в зависимости от сервера. Сопоставление между ключами и KeyCode не может быть изменено.А KeySym — кодировка символа на колпачке ключа. Набор определенных KeySyms включает наборы символов ISO Latin (1-4), катакана, арабский, кириллица, греческий, технический, Специальный, издательский, APL, иврит, тайский, корейский и набор ключей найден на клавиатуре (Return, Help, Tab и т. д.). Насколько это возможно, эти наборы получены из международных стандарты. В областях, где нет стандартов, некоторые из этих наборов основаны на стандартах Digital Equipment Corporation. Список определенных символов можно найти в X11/keysymdef.h . К сожалению, некоторые препроцессоры C имеют ограничения на количество определяемых символов. Если вы должны использовать KeySyms не в латинском 1-4, греческом и других классах, возможно, вам придется определить символ для этих наборов. Большинство приложений обычно включают только X11/keysym.h , который определяет символы для ISO Latin 1-4, греческого языка и прочего.
Список KeySyms связан с каждым KeyCode. Список предназначен для передачи набора символов на соответствующую клавишу. Если список (игнорируя конечный NoSymbol записи) есть один KeySym `` K '', то список обрабатывается так, как если бы это был список " K NoSymbol K NoSymbol". Если список (игнорируя конечный NoSymbol записи) представляет собой пару KeySyms `` K1 K2 '', тогда список обрабатывается так, как если бы это был список `` K1 K2 K1 K2 ''. Если список (игнорируя конечный NoSymbol записи) представляет собой тройку KeySyms `` K1 K2 K3 '', то список обрабатывается так, как если бы это был список `` K1 K2 K3 NoSymbol''. Когда в списке требуется явный элемент ``void'', Значение символ пустоты может быть использован.
Первые четыре элемента списка разбиты на две группы KeySyms. Группа 1 содержит первый и второй KeySyms; Группа 2 содержит третий и четвертый KeySyms. Внутри каждой группы если второй элемент группы NoSymbol , тогда группу следует рассматривать так, как если бы второй элемент был то же, что и первый элемент, за исключением случаев, когда первый элемент представляет собой буквенный KeySym `` К '' для которых определены как строчные, так и прописные формы. В таком случае, группу следует рассматривать так, как если бы первый элемент был строчная форма `` K '' и второй элемент были заглавная форма `` K .''
Стандартные правила получения KeySym от Нажатие клавиши событие использует только KeySyms группы 1 и группы 2; никакая интерпретация других KeySyms в списке не дается. Какую группу использовать, определяется состоянием модификатора. Переключение между группами управляется KeySym с именем MODE SWITCH, присоединив этот KeySym к некоторому KeyCode и присоединив этот KeyCode для любого из модификаторов Мод1 через Мод5 . Этот модификатор называется групповым модификатором . Для любого KeyCode, Группа 1 используется, когда модификатор группы выключен, и группа 2 используется, когда модификатор группы включен.
Замок модификатор интерпретируется как CapsLock, когда KeySym с именем XK_Caps_Lock прикреплен к некоторому KeyCode, и этот KeyCode прикреплен к Замок модификатор. Замок модификатор интерпретируется как ShiftLock, когда KeySym с именем XK_Shift_Lock прикреплен к некоторому KeyCode, и этот KeyCode прикреплен к Замок модификатор. Если Замок модификатор может быть интерпретирован как CapsLock и ShiftLock, используется интерпретация CapsLock.
Работа клавиш клавиатуры управляется KeySym с именем XK_Num_Lock, присоединив этот KeySym к некоторому KeyCode и присоединив этот KeyCode к любому один из модификаторов Мод1 через Мод5 . Этот модификатор называется модификатор numlock . Стандартные KeySyms с префиксом ``XK_KP_'' в их имя клавиатуры называется KeySyms; это KeySyms с числовым значением в шестнадцатеричный диапазон от 0xFF80 до 0xFFBD включительно. Кроме того, ключевые символы поставщика в шестнадцатеричном диапазоне от 0x11000000 до 0x1100FFFF также являются клавишными KeySyms.
Внутри группы выбор KeySym определяется применением первого правило, которое удовлетворяется из следующего списка:
- Модификатор numlock включен, а второй KeySym — это KeySym клавиатуры. В этом случае, если Смена модификатор включен, или если Замок модификатор включен и интерпретируется как ShiftLock, то используется первый KeySym, иначе используется второй KeySym.
- Смена и Замок оба модификатора отключены. В этом случае первый Используется KeySym.
- Смена модификатор выключен, а Замок модификатор включен и интерпретируется как CapsLock. В этом случае используется первый KeySym, но если что KeySym является буквой нижнего регистра, то соответствующий верхний регистр Вместо этого используется KeySym.
- Смена модификатор включен, и Замок модификатор включен и интерпретируется как CapsLock. В этом случае используется второй KeySym, но если этот KeySym является строчным алфавитом, то используется соответствующий KeySym в верхнем регистре вместо.
- Смена включен модификатор или Замок модификатор включен и интерпретируется как ShiftLock или оба. В этом случае используется второй KeySym.
Никакая пространственная геометрия символов на ключе не определяется их порядок в списке KeySym, хотя геометрия может быть определена на основе для конкретного сервера. X-сервер не использует сопоставление между KeyCodes и KeySyms. Скорее, он просто сохраняет его для чтения и записи клиентами.
Чтобы получить допустимые коды ключей для дисплея, используйте XDisplayKeycodes() .
Чтобы получить символы для указанных KeyCodes, используйте XGetKeyboardMapping() .
Чтобы изменить раскладку клавиатуры, используйте XChangeKeyboardMapping() .
Следующие шесть функций используют XModifierKeymap структура данных, которая содержит:
структура typedef { интервал max_keypermod; /* Максимальное количество ключей этого сервера на модификатор */ Код ключа *modifiermap; /* Массив 8 модификаторов по max_keypermod */ } XModifierKeymap;
Чтобы создать XModifierKeymap() структура, использование XNewModifiermap() .
Чтобы добавить новую запись в XModifierKeymap() структура, использование XInsertModifiermapEntry() .
Чтобы удалить запись из XModifierKeymap() структура, использование XDeleteModifiermapEntry() .
Чтобы уничтожить XModifierKeymap структура, использование XFreeModifiermap() .
Чтобы установить коды клавиш, которые будут использоваться в качестве модификаторов, используйте XSetModifierMapping() .
Чтобы получить коды клавиш, используемые в качестве модификаторов, используйте XGetModifierMapping() .
Следующая глава: Локали и интернационализированные текстовые функции
Кристоф Тронш, [email protected]
Что происходит внутри вашего компьютера при нажатии клавиши?
Что происходит внутри вашего компьютера при нажатии клавиши? Узнайте, посмотрев эту анимацию, рассказанную Маком Боули.
Посмотреть стенограмму
3.6
Что происходит в вашем компьютере, когда вы нажимаете клавишу на клавиатуре? Во-первых, переключатель под клавишей замыкается, и ток поступает на небольшой чип в клавиатуре. Каждая клавиша имеет номер скан-кода, который соответствует ее положению на клавиатуре.
22,5
Клавиатура передает этот номер в виде двоичных данных на ЦП компьютера. ЦП работает под управлением операционной системы, которая постоянно проверяет нажатия клавиш. Как только ОС обнаруживает нажатие клавиши, она тут же реагирует и выясняет, куда нужно направить данные. ОС знает, какое ПО было активно в момент нажатия клавиши, и на основе этой информации создает событие. В вычислительной технике событие — это действие, распознаваемое и обрабатываемое программным обеспечением. События часто исходят из аппаратного обеспечения компьютеров. Ваша ОС знает раскладку клавиатуры. Он сопоставляет код сканирования с нажатой клавишей и соответствующей буквой, преобразуя код сканирования в число Unicode. Затем ваше программное обеспечение для редактирования текста захватывает событие из операционной системы.
78.7
В зависимости от выбранного шрифта программа преобразует номер Unicode в изображение. Программное обеспечение создает двоичное представление изображения и отправляет его обратно в ЦП. ЦП пересылает двоичное представление в графический процессор или ГП. Графический процессор преобразует двоичное представление в изображение, отображаемое на вашем мониторе.
105.6
Что делать, если символы на клавиатуре расположены в разных местах? Как ваша операционная система может понимать арабскую клавиатуру вместо латинского алфавита? Почему бы не поделиться своими мыслями и не присоединиться к обсуждению в разделе комментариев ниже.
На этом этапе мы рассмотрим, что происходит, когда вы нажимаете клавишу на клавиатуре.
Процесс нажатия клавиши в чем-то вроде Microsoft Word и его отображения на экране — хорошая демонстрация того, что такое компьютерная система: набор устройств, которые вводят, обрабатывают, выводят и хранят данные. Он иллюстрирует, как аппаратное обеспечение компьютера взаимодействует с программным обеспечением и наоборот.
Последовательность событий при нажатии клавиши следующая.
Клавиша нажата
Когда клавиша нажата, переключатель замыкается, и ток течет через небольшой чип в клавиатуре.
Каждой клавише на клавиатуре присвоен номер, называемый скан-кодом . Число основано на том, где клавиша находится на клавиатуре. Это полезно, когда речь идет о клавиатурах с разными раскладками и/или символами. Этот код сканирования отправляется в компьютер в виде двоичного числа.
Число передается в ЦП
Двоичные данные передаются с клавиатуры на ваш компьютер.
Путь данных будет зависеть от того, как ваша клавиатура подключена к компьютеру. Если он подключен кабелем USB, он будет подключен к порту USB. Если клавиатура подключена по Bluetooth, она будет подключена к приемнику Bluetooth.
Затем данные отправляются в мозг компьютера: ЦП.
Данные интерпретируются операционной системой
Помните, что процессор работает под управлением операционной системы. Операционная система постоянно проверяет нажатия клавиш. Может показаться, что он сидит и ничего не делает, но операционная система должна немедленно реагировать на нажатия клавиш, поэтому она должна быть готова к ним все время.
Событие создается операционной системой и фиксируется прикладным программным обеспечением
Операционная система преобразует код сканирования в символ ASCII или Unicode в зависимости от нажатия клавиши. Обычно вы устанавливаете раскладку клавиатуры для своего компьютера в операционной системе, поэтому именно операционная система будет знать, какая буква представлена, скажем, скан-кодом 1 в этой раскладке языка/клавиатуры.
ОС создает событие в зависимости от полученного символа. В вычислениях событие — это действие, которое распознается и обрабатывается программным обеспечением. Часто это происходит из-за аппаратного обеспечения.
Теперь ОС должна отправить событие соответствующему приложению. Запущено множество различных приложений, и нажатие клавиши должно обрабатываться правильным. ОС знает, какое программное обеспечение было активно, когда была нажата клавиша, и отправляет событие этому приложению.
Приложением в этом примере является Microsoft Word. Он захватывает событие из операционной системы.
Прикладное программное обеспечение отображает символ на экране
Microsoft Word преобразует символ в изображение на основе выбранного вами шрифта в Microsoft Word.