Скан-код — числовой код, присвоенный каждой клавише в 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 |
