Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Скан-коды клавиш клавиатуры (scan codes)

02.11.2021

6508

В закладки

Скан-код — числовой код, присвоенный каждой клавише в IBM-совместимых компьютерах, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата.

Название клавиши DEC HEX
Esc 1 0x1
← Backspace 14 0x0E
Tab ↹ 15 0x0F
↵ Enter 28 0x1C
⇧ Shift левый 42 0x2A
⇧ Shift правый 54 0x36
Ctrl левый 29
0x1D
Ctrl правый 285 0x11D
Alt левый 56 0x38
Alt правый 312 0x138
⊞ Win левый 91 0x5B
⊞ Win правый 92 0x5C
⇪ Caps Lock 58 0x3A
Num Lock 69 0x45
Scrol Lock 70 0x46
Pause/Break 69 0x45
Ctrl + Pause/Break 326 0x146
End 79
0x4F
Home 71 0x47
Пробел 57 0x39
Page Up 73 0x49
Page Down 81 0x51
Clear 76 0x4C
75 0x4B
72 0x48
77 0x4D
80 0x50
PrtSc 311 0x137
Insert 82 0x52
Delete 83
0x53
0 11 0xB
1 2 0x2
2 3 0x3
3 4 0x4
4 5 0x5
5 6 0x6
6 7 0x7
7 8 0x8
8 9 0x9
9 10 0xA
A 30 0x1E
B 48 0x30
C
46
0x2E
D 32 0x20
E 18 0x12
F 33 0x21
G 34 0x22
H 35 0x23
I 23 0x17
J 36 0x24
K 37 0x25
L 38 0x26
M 50 0x32
N 49 0x31
O 24 0x18
P 25 0x19
Q 16 0x10
R 19 0x13
S 31 0x1F
T 20 0x14
U 22 0x16
V 47 0x2F
W 17 0x11
X 45 0x2D
Y 21 0x15
Z 44 0x2C
Context Menu 349 0x15D
Numpad 0
82 0x52
Numpad 1 79 0x4F
Numpad 2 80 0x50
Numpad 3 81 0x51
Numpad 4 75 0x4B
Numpad 5 76 0x4C
Numpad 6 77 0x4D
Numpad 7 71 0x47
Numpad 8 72 0x48
Numpad 9 73 0x49
Numpad * 55 0x37
Numpad + 78
0x4E
Numpad - 74 0x4A
Numpad . (Del) 83 0x53
Numpad / 53 0x35
Numpad Enter 284 0x11c
F1 59 0x3B
F2 60 0x3C
F3 61 0x3D
F4 62 0x3E
F5 63 0x3F
F6 64 0x40
F7 65 0x41
F8
66 0x42
F9 67 0x43
F10 68 0x44
F11 87 0x57
F12 88 0x58
F13 124 0x7C
F14 125 0x7D
F15 126 0x7E
F16 127 0x7F
F17 128 0x80
F18 129 0x81
F19 130 0x82
F20 131 0x83
F21 132 0x84
F22 133 0x85
F23 134 0x86
F24 135 0x87
; : 39 0x27
- _ 12 0x0C
= + 13 0x0D
< , 51 0x33
. > 52 0x34
/ ? 53 0x35
~ 41 0x29
[ { 26 0x1A
] } 27 0x1B
' " 40 0x28
| 43 0x2B

02.11.2021, обновлено 01.12.2021

6508

#Клавиатура

В закладки

Другие публикации

Как отследить нажатие клавиш JQuery?

В событиях – keydown(), keyup(), keypress() можно получить нажатые клавиши в шести свойствах. Получить их можно из…

Горячие клавиши Google Chrome

Список сочетаний клавиш, которые можно использовать в Google Chrome для Windows и MacOS.

Ремаппинг клавиш на клавиатуре / Хабр

Всю свою жизнь был фанатом бесшумных, тонких, и красивых клавиатур и к моему удивлению обнаружил что таковых не так уж и много, из доступных в свободной продаже, — их единицы. Пришлось пользоваться «Genius SlimStar Pro», и все равно она меня угнетала, как и мысль о том, что я никогда не найду клавиатуру которая бы удовлетворяла меня на все 100%. Я такую нашел и по рекомендации товарища Boomburum, приобрел “Illuminated Keyboard“, которая стала достойной подругой моей “MX Revolution“, и я окончательно порвал отношения с Genius, а последние рассказы о поддержке пользователей со стороны Logitech, убедили меня, что вложенные (не малые деньги) себя оправдают за 3 гарантийных года.

Но есть небольшая беда в клавиатурах этой компании, — “Не стандартные, не удобные, или не нужные расположения некоторых кнопок“. В случае с Illuminated, это две одинаковые кнопки “\”, левая из которых пошла в ущерб клавише «LShift», Кстати на картинке вы можете заметить что раньше эти клавиатуры имели стандартный размер «LShift». Под катом, я расскажу как вернуть «стандартную длину» этой кнопки, так как в слепой печати и в силу привычки, я нажимаю именно / вместо шифта. А заодно расскажу как без дополнительного установленного ПО, на примере, вы сможете менять назначения любых клавиш ваших клавиатур (в том числе и функциональных/медийных) при помощи Реестра и Скан-кода клавиш.

Спецификация для Windows.
При нажатии любой клавиши контроллер клавиатуры вырабатывает скан-код, соответствующей позиции клавиши, который передаются в компьютер. Служебные коды, которые может вырабатывать контроллер клавиатуры, передаются для обработки подпрограммам BIOS. В буфере клавиатуры для кода клавиши отводится по 2 байта, т. е. он рассчитан на 16 символов.

Узнать Скан-код необходимой для ремаппинга клавиши вы можете здесь, а если у вас супер новая клавиатура с кнопками космического происхождения, то отловить скан-код вы можете используя программу “KeyboardTest” от разработчика Passmark Software. Программка платная, но бесплатным триалом. Или OpenSource Программу SharpKeys. Она потребовалась для определения скан-кода левой “\”, так как многие наивно полагали что сигналы у обеих одинаковые, а значит и не подлежат ремаппингу. На деле оказалось не так.

Правый “\” имеет скан-код: 2b.00
Левый нижний “\” имеет скан-код: 56.00

И так, мы определили скан-код нашей незадачливой кнопки, теперь нам нужно найти скан-код «LShift». Его можно найти по данной выше ссылке и он равен: 2A.00

Есть куча приложений которые делают этот ремаппинг, многие за базу принимают существующие скан-коды, многие не имеют сканера, что бы определить скан-код клавиши которой нет в базе. Да и устанавливать лишнее приложение очень не хотелось. По-гуглив я остановился на возможностях Windows. а точнее редактора реестра (Пуск-Выполнить: regedit). Или вышеупомянутую программу SharpKeys, которая имеет GUI и выполняет такую же замену в реестре

1. В ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout
создайте бинарный параметр с именем “Scancode Map
2. В параметр «Scancode Map» записываем следующие значения:
00.00.00.00.00.00.00.00.02 — девятый байт (02) в этой записи означает количество клавиш которое мы будем менять (и равен количеству клавиш +1) в нашем случае это 02, так как мы меняем значения одной клавиши. После этого вписываем еще три «пустых» байта, и теперь наш параметр выглядит так:
00.00.00.00.00.00.00.00.02.00.00.00.
Поскольку мы уже определили все Скан-коды, то продолжая наш параметр, нам следует указать скан-код значения новой кнопки (в нашем случае это 2A.00), а затем скан-код старой (заменяемой) кнопки 56.00. Теперь необходимо закрыть эту функцию четырьмя «пустыми» байтами, то есть 00.00.00.00:

3. Перезагружаем компьютер и пользуемся нашими новыми кнопками.

PS: Если нужно сделать ремаппинг не на всем ПК, а только в вашем сеансе, то значения необходимо менять в HKEY_CURRENT_USER\SYSTEM\CurrentControlSet\Control\Keyboard Layout

UPD: Если вы боитесь работать в реесте, то создайте текстовый файл с расширением *. reg, и впишите туда следующее:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,2a,00,56,00,00,00,00,00

затем сохраните, запустите, и перезагрузите ПК.

UPD2: Перенос Скриншотов на
1. Левый Win-key выглядит так:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,37,E0,5B,E0,00,00,00,00

Правый Win-key выглядит так:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,02,00,00,00,37,E0,5C,E0,00,00,00,00

кодов сканирования клавиатуры

кодов сканирования клавиатуры

Inquisit записывает скан-код ответа субъекта в столбце ответа. файла данных. Каждая клавиша на клавиатуре имеет один уникальный скан-код, заданный в таблице ниже.

Код сканирования Ключ клавиатуры
1 ЭСК
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 0
12
13 =
14 бс
15 Вкладка
16 Вопрос
17 В
18 Е
19 Р
20 Т
21 Y
22 У
23 я
24 О
25 Р
26 [
27 ]
28 Введите
29 CTRL
30 А
31 S
32 Д
33 Ф
34 Г
35 Н
36 Дж
37 К
38 Л
39 ;
40
41 `
42 левшифт
43 \
44 Z
45 Х
46 С
47 В
48 Б
49
50 М
51 ,
52 .
53 /
54 РШифт
55 ПТС
56 Вариант
57 Космос
58 Колпачки
59 F1
60 F2
61 F3
62 F4
63 F5
64 F6
65 F7
66 F8
67 F9
68 F10
69 Номер
70 Свиток
71 Главная (7)
72 Вверх (8)
73 ПгВп (9)
74
75 Левый (4)
76 Центр (5)
77 Право (6)
78 +
79 Конец (1)
80 Вниз (2)
81 ПГДн (3)
82 Инс
83 Дел

Коды сканирования клавиатуры

Коды сканирования клавиатуры
[Предыдущая][Вверх] Ссылка на блок «клавиатура» (#rtl)

Специальные физические ключи кодируются скан-кодами DOS для этих ключей во втором байте типа TKeyEvent. Полный список кодов сканирования можно найти в таблице ниже. Это список ключей, которые используются механизмом перевода ключевых событий по умолчанию. При написании драйвера клавиатуры либо эти константы должны возвращаться различными функциями обработки событий клавиш, либо драйвером должен быть реализован хук TranslateKeyEvent .

Ключевые скан-коды
Код Ключ Код Ключ Код Ключ
00 Нет ключа 3D Ф3 70 ALT-F9
01 ALT-Esc Ф4 71 АЛЬТ-Ф10
02 ALT-Пробел 3F Ф5 72 CTRL-PrtSc
04 CTRL-Ins 40 Ф6 73 CTRL-Влево
05 SHIFT-Ins 41 Ф7 74 CTRL-вправо
06 CTRL-Del 42 Ф8 75 CTRL-конец
07 SHIFT-Del 43 Ф9 76 CTRL-PgDn
08 ALT-Назад 44 Ф10 77 CTRL-Дом
09 ALT-SHIFT-Назад 47 Дом 78 АЛЬТЕР-1
0F SHIFT-вкладка 48 Вверх 79 АЛЬТ-2
10 АЛЬТ-Q 49 ПгВп АЛЬТЕР-3
11 АЛЬТ-В Левый АЛЬТЕР-4
12 АЛЬТ-Е Центр АЛЬТЕР-5
13 АЛЬТ-Р справа АЛЬТЕР-6
14 АЛЬТ-Т АЛЬТ-ГрейПлюс АЛЬТЕР-7
15 АЛЬТ-Y 4F конец АЛЬТЕР-8
16 АЛЬТ-У 50 Вниз 80 АЛЬТЕР-9
17 АЛЬТ-И 51 ПГДН 81 АЛЬТЕР-0
18 АЛЬТ-О 52 Инс 82 ALT-минус
19 АЛЬТ-П 53 Дел 83 ALT-равно
ALT-LftBrack 54 SHIFT-F1 84 CTRL-PgUp
ALT-RgtBrack 55 SHIFT-F2 85 Ф11
АЛЬТ-А 56 SHIFT-F3 86 Ф12
1F АЛЬТ-С 57 SHIFT-F4 87 SHIFT-F11
20 АЛЬТ-Д 58 SHIFT-F5 88 SHIFT-F12
21 АЛЬТ-Ф 59 SHIFT-F6 89 CTRL-F11
22 АЛЬТ-Г SHIFT-F7 CTRL-F12
23 АЛЬТ-Х SHIFT-F8 АЛЬТ-Ф11
24 АЛЬТ-ДЖ SHIFT-F9 АЛЬТ-Ф12
25 АЛЬТ-К 5D SHIFT-F10 CTRL-Вверх
26 АЛЬТЕР-Л CTRL-F1 CTRL-минус
27 АЛЬТ-Полуколь 5F CTRL-F2 8F CTRL-Центр
28 ALT-Цитата 60 CTRL-F3 90 CTRL-GreyPlus
29 ALT-OpQuote 61 CTRL-F4 91 CTRL-Вниз
ALT-BkSlash 62 CTRL-F5 94 CTRL-вкладка
АЛЬТ-З 63 CTRL-F6 97 АЛЬТ-Дом
2D АЛЬТ-Х 64 CTRL-F7 98 АЛЬТ-Вверх
АЛЬТ-С 65 CTRL-F8 99 ALT-PgUp
2F АЛЬТ-В 66 CTRL-F9 ALT-Левый
30 АЛЬТ-Б 67 CTRL-F10 ALT-Право
31 АЛЬТЕР-Н 68 АЛЬТ-Ф1 ALT-конец
32 АЛЬТ-М 69 АЛЬТ-Ф2 А0 ALT-вниз
33 ALT-запятая АЛЬТ-Ф3 А1 ALT-PgDn
34 ALT-Период ALT-F4 А2 ALT-Ins
35 ALT-слеш ALT-F5 А3 ALT-Del
37 ALT-СерыйAst ALT-F6 А5 ALT-вкладка
Ф1 ALT-F7
Ф2 6F ALT-F8

Список кодов сканирования для специальных клавиш и комбинаций с клавишами SHIFT, ALT и CTRL можно найти в следующей таблице: Они предназначены только для быстрого ознакомления.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *