Кодировка клавиш клавиатуры


Виртуальные коды клавиш (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
Print 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
Mail 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-разрядного значения виртуального ключа, используемого для методов ввода без клавиатуры. Дополнительные сведения см. в примечаниях, KEYBDINPUTSendInputWM_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

: Кодирование клавиатуры Руководство по программированию 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.


Learn more

Только новые статьи

Введите свой e-mail

Видео-курс

Blender для новичков

Ваше имя:Ваш E-Mail: