Скан-код — числовой код, присвоенный каждой клавише в 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 |
Десятичные скан-коды клавиатуры
Шестнадцатеричные скан-коды клавиатуры
Скан-код: Ремаппинг клавиш на клавиатуре
Время на прочтение3 мин
Количество просмотров109K
Предыстория
Всю свою жизнь был фанатом бесшумных, тонких, и красивых клавиатур и к моему удивлению обнаружил что таковых не так уж и много, из доступных в свободной продаже, — их единицы. Пришлось пользоваться «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
The following table shows the symbolic constant names, decimal values, and mouse or keyboard equivalents for the virtual-key codes used by the system. The codes are listed in numeric order.
General key code list
Key | Key Code | Description |
Back | 8 | The BACKSPACE key |
Tab | 9 | The TAB key |
Enter | 13 | The ENTER key |
ShiftKey | 16 | The SHIFT key |
ControlKey | 17 | The CTRL key |
Menu | 18 | The ALT key |
Pause | 19 | The PAUSE key |
CapsLock | 20 | The CAPS LOCK key |
Escape | 27 | The ESC key |
Space | 32 | The SPACEBAR key |
PageUp | 33 | The PAGE UP key |
PageDown | 34 | The PAGE DOWN key |
End | 35 | The END key |
Home | 36 | The HOME key |
Left | 37 | The LEFT ARROW key |
Up | 38 | The UP ARROW key |
Right | 39 | The RIGHT ARROW key |
Down | 40 | The DOWN ARROW key |
Select | 41 | The SELECT key |
42 | The PRINT key | |
Execute | 43 | The EXECUTE key |
PrintScreen | 44 | The PRINT SCREEN key |
Insert | 45 | The INS key |
Delete | 46 | The DEL key |
Help | 47 | The HELP key |
0 | 48 | The 0 key |
1 | 49 | The 1 key |
2 | 50 | The 2 key |
3 | 51 | The 3 key |
4 | 52 | The 4 key |
5 | 53 | The 5 key |
6 | 54 | The 6 key |
7 | 55 | The 7 key |
8 | 56 | The 8 key |
9 | 57 | The 9 key |
A | 65 | The A key |
B | 66 | The B key |
C | 67 | The C key |
D | 68 | The D key |
E | 69 | The E key |
F | 70 | The F key |
G | 71 | The G key |
H | 72 | The H key |
I | 73 | The I key |
J | 74 | The J key |
K | 75 | The K key |
L | 76 | The L key |
M | 77 | The M key |
N | 78 | The N key |
O | 79 | The O key |
P | 80 | The P key |
Q | 81 | The Q key |
R | 82 | The R key |
S | 83 | The S key |
T | 84 | The T key |
U | 85 | The U key |
V | 86 | The V key |
W | 87 | The W key |
X | 88 | The X key |
Y | 89 | The Y key |
Z | 90 | The Z key |
LWin | 91 | The left Windows logo key |
RWin | 92 | The right Windows logo key |
Apps | 93 | The application key |
Sleep | 95 | The computer sleep key |
NumPad0 | 96 | The 0 key on the numeric keypad |
NumPad1 | 97 | The 1 key on the numeric keypad |
NumPad2 | 98 | The 2 key on the numeric keypad |
NumPad3 | 99 | The 3 key on the numeric keypad |
NumPad4 | 100 | The 4 key on the numeric keypad |
NumPad5 | 101 | The 5 key on the numeric keypad |
NumPad6 | 102 | The 6 key on the numeric keypad |
NumPad7 | 103 | The 7 key on the numeric keypad |
NumPad8 | 104 | The 8 key on the numeric keypad |
NumPad9 | 105 | The 9 key on the numeric keypad |
Multiply | 106 | The multiply key |
Add | 107 | The add key |
Separator | 108 | The separator key |
Subtract | 109 | The subtract key |
Decimal | 110 | The decimal key |
Divide | 111 | The divide key |
F1 | 112 | The F1 key |
F2 | 113 | The F2 key |
F3 | 114 | The F3 key |
F4 | 115 | The F4 key |
F5 | 116 | The F5 key |
F6 | 117 | The F6 key |
F7 | 118 | The F7 key |
F8 | 119 | The F8 key |
F9 | 120 | The F9 key |
F10 | 121 | The F10 key |
F11 | 122 | The F11 key |
F12 | 123 | The F12 key |
F13 | 124 | The F13 key |
F14 | 125 | The F14 key |
F15 | 126 | The F15 key |
F16 | 127 | The F16 key |
F17 | 128 | The F17 key |
F18 | 129 | The F18 key |
F19 | 130 | The F19 key |
F20 | 131 | The F20 key |
F21 | 132 | The F21 key |
F22 | 133 | The F22 key |
F23 | 134 | The F23 key |
F24 | 135 | The F24 key |
NumLock | 144 | The NUM LOCK key |
Scroll | 145 | The SCROLL LOCK key |
LShiftKey | 160 | The left SHIFT key |
RShiftKey | 161 | The right SHIFT key |
LControlKey | 162 | The left CTRL key |
RControlKey | 163 | The right CTRL key |
LMenu | 164 | The left ALT key |
RMenu | 165 | The right ALT key |
Browser
Key | Key Code | Description |
BrowserBack | 166 | The browser back key |
BrowserForward | 167 | The browser forward key |
BrowserRefresh | 168 | The browser refresh key |
BrowserStop | 169 | The browser stop key |
BrowserSearch | 170 | The browser search key |
BrowserFavorites | 171 | The browser favorites key |
BrowserHome | 172 | The browser home key |
Media Player
Key | Key Code | Description |
VolumeMute | 173 | The volume mute key |
VolumeDown | 174 | The volume down key |
VolumeUp | 175 | The volume up key |
MediaNextTrack | 176 | The media next track key |
MediaPreviousTrack | 177 | The media previous track key |
MediaStop | 178 | The media Stop key |
MediaPlayPause | 179 | The media play pause key |
Source: https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.keys
key key code keyboard keystrokes send key
ReGen — KeyCode
для Windows
ReGen — KeyCode — бесплатная утилита, которая поможет определить код клавиш. Это приложение отображает кодировку клавиши, ASCII и brCode (код символа для браузера), при этом сразу же переводя значения кода в двоичную и шестнадцатиричную системы исчисления, что достаточно удобно. Помимо этого, ReGen — KeyCode для быстрого копирования кода и его последующего использования поддерживает работу с буфером обмена.
Что нового в ReGen — KeyCode 1.5.1.0?
- Исправлены мелкие ошибки
ТОП-сегодня раздела «другое»
Postman 11.31.4
Платформа для создания и использования API. Postman упрощает каждый этап жизненного цикла API и…
VRCP SPRuler 2.6.0.2017.0
SPRuler — экранная линейка, с помощью которой можно быстро и легко измерить в пикселях любые объекты на экране монитора…
Ini Editor 2.6.3
Ini Editor — Программа является расширенным редактором файлов инициализации, которые имеют…
GetWindowText 5.21
GetWindowText — небольшая портативная (не требующая инсталляции) утилита с помощью которой можно…
Отзывы о программе ReGen — KeyCode
Admin
Отзывов о программе ReGen — KeyCode 1.5.1.0 пока нет, можете добавить…
Виртуальные коды клавиш
В таблице перечислены коды для стандартной 101-клавишной клавиатуры.
Клавиша | Код | HEX-код |
Backspace (забой) | 8 | 0x08 |
Tab | 9 | 0x09 |
Enter (ввод) | 13 | 0x0D |
Shift | 16 | 0x10 |
Ctrl | 17 | 0x11 |
Alt | 18 | 0x12 |
Pause | 19 | 0x13 |
CapsLock | 20 | 0x14 |
Esc | 27 | 0x1B |
Space (пробел) | 32 | 0x20 |
PageUp | 33 | 0x21 |
PageDown | 34 | 0x22 |
End | 35 | 0x23 |
Home | 36 | 0x24 |
← (влево) | 37 | 0x25 |
↑ (вверх) | 38 | 0x26 |
→ (вправо) | 39 | 0x27 |
↓ (вниз) | 40 | 0x28 |
Insert | 45 | 0x2D |
Delete | 46 | 0x2E |
0 | 48 | 0x30 |
1 | 49 | 0x31 |
2 | 50 | 0x32 |
3 | 51 | 0x33 |
4 | 52 | 0x34 |
5 | 53 | 0x35 |
6 | 54 | 0x36 |
7 | 55 | 0x37 |
8 | 56 | 0x38 |
9 | 57 | 0x39 |
A | 65 | 0x41 |
B | 66 | 0x42 |
C | 67 | 0x43 |
D | 68 | 0x44 |
E | 69 | 0x45 |
F | 70 | 0x46 |
G | 71 | 0x47 |
H | 72 | 0x48 |
I | 73 | 0x49 |
J | 74 | 0x4A |
K | 75 | 0x4B |
L | 76 | 0x4C |
M | 77 | 0x4D |
N | 78 | 0x4E |
O | 79 | 0x4F |
P | 80 | 0x50 |
Q | 81 | 0x51 |
R | 82 | 0x52 |
S | 83 | 0x53 |
T | 84 | 0x54 |
U | 85 | 0x55 |
V | 86 | 0x56 |
W | 87 | 0x57 |
X | 88 | 0x58 |
Y | 89 | 0x59 |
Z | 90 | 0x5A |
Левая кл. Windows | 91 | 0x5B |
Правая кл. Windows | 92 | 0x5C |
Клавиша Applications | 93 | 0x5D |
NumPad 0 | 96 | 0x60 |
NumPad 1 | 97 | 0x61 |
NumPad 2 | 98 | 0x62 |
NumPad 3 | 99 | 0x63 |
NumPad 4 | 100 | 0x64 |
NumPad 5 | 101 | 0x65 |
NumPad 6 | 102 | 0x66 |
NumPad 7 | 103 | 0x67 |
NumPad 8 | 104 | 0x68 |
NumPad 9 | 105 | 0x69 |
NumPad * | 106 | 0x6A |
NumPad + | 107 | 0x6B |
NumPad – | 109 | 0x6D |
NumPad . | 110 | 0x6E |
NumPad / | 111 | 0x6F |
F1 | 112 | 0x70 |
F2 | 113 | 0x71 |
F3 | 114 | 0x72 |
F4 | 115 | 0x73 |
F5 | 116 | 0x74 |
F6 | 117 | 0x75 |
F7 | 118 | 0x76 |
F8 | 119 | 0x77 |
F9 | 120 | 0x78 |
F10 | 121 | 0x79 |
F11 | 122 | 0x7A |
F12 | 123 | 0x7B |
NumLock | 144 | 0x90 |
ScrollLock | 145 | 0x91 |
PrintScreen | 154 | 0x9A |
Meta | 157 | 0x9D |
; | 186 | 0xBA |
= | 187 | 0xBB |
, | 188 | 0xBC |
— | 189 | 0xBD |
. | 190 | 0xBE |
/ | 191 | 0xBF |
~ | 192 | 0xC0 |
[ | 219 | 0xDB |
\ | 220 | 0xDC |
] | 221 | 0xDD |
‘ | 222 | 0xDE |