как узнать код клавиши на клавиатуре

Скан-код: Ремаппинг клавиш на клавиатуре

Что такое Скан-код

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

Как определить Скан-код клавиши

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

И так, мы определили скан-код нашей незадачливой кнопки, теперь нам нужно найти скан-код «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

Читайте также:  если не спать 24 часа что происходит

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

Источник

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

Таблица кодов клавиш, которыми можно пользоваться при проверке параметра Key в обработчиках событий OnKeyDown и OnKeyUp :

Клавиша

Дес.
число

Шест.
число

Символическое
имя

Сравнение по
функции ord

F1 112 $70 VK_F1 F2 113 $71 VK_F2 F3 114 $72 VK_F3 F4 115 $73 VK_F4 F5 116 $74 VK_F5 F6 117 $75 VK_F6 F7 118 $76 VK_F7 F8 119 $77 VK_F8 F9 120 $78 VK_F9 F10 121 $79 VK_F10 пробел 32 $20 VK_SPACE BackSpace 8 $8 VK_BACK Tab 9 $9 VK_TAB Enter 13 $0D VK_RETURN Shift 16 $10 VK_SHIFT Ctrl 17 $11 VK_CONTROL Alt 18 $12 VK_MENU CapsLock 20 $14 VK_CAPITAL Esc 27 $1B VK_ESCAPE Insert 45 $2D VK_INSERT PageUp 33 $21 VK_PRIOR PageDown 34 $22 VK_NEXT End 35 $23 VK_END Home 36 $24 VK_HOME Стрелка назад 37 $25 VK_LEFT Стрелка вверх 38 $26 VK_UP Стрелка вперед 39 $27 VK_RIGHT Стрелка вниз 40 $28 VK_DOWN Delete 46 $2E VK_DELETE PrintScreen 44 $2C VK_SNAPSHOT ScrollLock 145 $91 VK_SCROLL Pause 19 $13 VK_PAUSE NumLock 144 $90 VK_NUMLOCK 0,) 48 $30 Ord(‘0’) 1! 49 $31 Ord(‘1’) 2@ 50 $32 Ord(‘2’) 3# 51 $33 Ord(‘3’) 4$ 52 $34 Ord(‘4’) 5% 53 $35 Ord(‘5’) 6^ 54 $36 Ord(‘6’) 7& 55 $37 Ord(‘7’) 8* 56 $38 Ord(‘8’) 9( 57 $39 Ord(‘9’) `

192 $C0 -_ 189 $BD =+ 187 $BB [ < 219 $DB ]> 221 $DD :; 186 $BA ‘” 222 $DE | 220 $DC , 190 $BE /? 191 $BF A a 65 $41 Ord(‘A’) B b 66 $42 Ord(‘B’) С с 67 $43 Ord(‘С’) D d 68 $44 Ord(‘D’) E e 69 $45 Ord(‘E’) F f 70 $46 Ord(‘F’) G g 71 $47 Ord(‘G’) H h 72 $48 Ord(‘H’) I i 73 $49 Ord(‘I’) J j 74 $4A Ord(‘J’) K k 75 $4B Ord(‘K’) L l 76 $4C Ord(‘L’) M m 77 $4D Ord(‘M’) N n 78 $4E Ord(‘N’) O o 79 $4F Ord(‘O’) P p 80 $50 Ord(‘P’) Q q 81 $51 Ord(‘Q’) R r 82 $52 Ord(‘R’) S s 83 $53 Ord(‘S’) T t 84 $54 Ord(‘T’) U u 85 $55 Ord(‘U’) V v 86 $56 Ord(‘V’) W w 87 $57 Ord(‘W’) X x 88 $58 Ord(‘X’) Y y 89 $59 Ord(‘Y’) Z z 90 $5A Ord(‘Z’)

Читайте также:  как смотреть что то вместе в дискорде

Правая клавиатура при выключенной клавише NumLock:

Клавиша

Дес.
число

Шест.
число

Символическое
имя

Источник

События клавиатуры в JavaScript

При вводе с клавиатуры в javascript возникает сразу несколько событий, которые позволяют отследить коды нажатых клавиш и получить дополнительную полезную информацию для полного контроля над устройством ввода. Перейдём к теоретической и практической части.

События клавиатуры

В JS для клавиатуры используется 3 основных события:

Для избежания повторных вызовов «keydown» и «keypress» используйте свойство «repeat». Подробнее рассмотрим его позже.

В примерах использовался метод «addEventListener», но можно встретить и другие варианты:

Получение свойств событий

Для получения информации о клавише обратитесь к свойствам объекта «event».

Свойства key и keyCode

key — возвращает значение нажатой клавиши в виде строки. Например, «F», «5» или «Enter».

keyCode — возвращает числовой код. Для события «keypress» вернёт ASCII-код нажатого символа.

Примечание. Цифры на верхнем и боковом блоке клавиатуры имеют разные «keyCode».

Коды основных функциональных клавиш:

Клавиша Key keyCode
Ввод Enter 13
Стереть Backspace 8
Удалить Delete 46
Пробел Space 32
Табулятор Tab 9
Esc Escape 27
Стрелка влево ArrowLeft 37
Стрелка вверх ArrowUp 38
Стрелка вправо ArrowRight 39
Стрелка вниз ArrowDown 40
Shift Shift 16
Ctrl Control 17
Alt Alt 18

Хорошей практикой в JavaScript считается использование «key», а не «keyCode». Это повышает читаемость кода и избавляет от необходимости запоминать соответствие кодов их значениям.

Свойства code и charCode

Актуальны только для события «keypress».

Не поддерживаются IE и старыми версиями других браузеров.

Свойства altKey, ctrlKey, shiftKey

Свойство type

Возвращает тип события в виде строки. Может использоваться, когда один обработчик применяется сразу для нескольких событий.

Свойство repeat

Возвращает логическое «true», если событие уже один раз отработало и автоматически вызывается снова. Подобная ситуация возникает при зажатии клавиши на длительное время — «keydown» и «keypress» начинают срабатывать повторно.

Пример проверки ввода в Input

Рассмотрим небольшой пример, в котором разрешим ввод в текстовое поле только нуля и единицы. Учитываем возможность стирания, удаления и табуляции.

Метод «preventDefault()» запрещает действие по умолчанию.

Читайте также:  как написать крашу что ты его любишь

Применение предыдущего обработчика ко всем текстовыми полями на странице:

Коды клавиш

Поставьте курсор в поле ввода и нажмите любую клавишу:

Источник

Коды клавиш Delphi

Таблица кодов клавиш, которыми можно пользоваться при проверке параметра Key в обработчиках событий OnKeyDown и OnKeyUp :

Клавиша

число

Шест.

число

Символическое

Сравнение по

функции ord F1 112 $70 VK_F1 F2 113 $71 VK_F2 F3 114 $72 VK_F3 F4 115 $73 VK_F4 F5 116 $74 VK_F5 F6 117 $75 VK_F6 F7 118 $76 VK_F7 F8 119 $77 VK_F8 F9 120 $78 VK_F9 F10 121 $79 VK_F10 пробел 32 $20 VK_SPACE BackSpace 8 $8 VK_BACK Tab 9 $9 VK_TAB Enter 13 $0D VK_RETURN Shift 16 $10 VK_SHIFT Ctrl 17 $11 VK_CONTROL Alt 18 $12 VK_MENU CapsLock 20 $14 VK_CAPITAL Esc 27 $1B VK_ESCAPE Insert 45 $2D VK_INSERT PageUp 33 $21 VK_PRIOR PageDown 34 $22 VK_NEXT End 35 $23 VK_END Home 36 $24 VK_HOME Стрелка назад 37 $25 VK_LEFT Стрелка вверх 38 $26 VK_UP Стрелка вперед 39 $27 VK_RIGHT Стрелка вниз 40 $28 VK_DOWN Delete 46 $2E VK_DELETE PrintScreen 44 $2C VK_SNAPSHOT ScrollLock 145 $91 VK_SCROLL Pause 19 $13 VK_PAUSE NumLock 144 $90 VK_NUMLOCK 0,) 48 $30 Ord(‘0’) 1! 49 $31 Ord(‘1’) 2@ 50 $32 Ord(‘2’) 3# 51 $33 Ord(‘3’) 4$ 52 $34 Ord(‘4’) 5% 53 $35 Ord(‘5’) 6^ 54 $36 Ord(‘6’) 7& 55 $37 Ord(‘7’) 8* 56 $38 Ord(‘8’) 9( 57 $39 Ord(‘9’) `

192 $C0 -_ 189 $BD =+ 187 $BB [ < 219 $DB ]> 221 $DD :; 186 $BA ‘” 222 $DE | 220 $DC , 190 $BE /? 191 $BF A a 65 $41 Ord(‘A’) B b 66 $42 Ord(‘B’) С с 67 $43 Ord(‘С’) D d 68 $44 Ord(‘D’) E e 69 $45 Ord(‘E’) F f 70 $46 Ord(‘F’) G g 71 $47 Ord(‘G’) H h 72 $48 Ord(‘H’) I i 73 $49 Ord(‘I’) J j 74 $4A Ord(‘J’) K k 75 $4B Ord(‘K’) L l 76 $4C Ord(‘L’) M m 77 $4D Ord(‘M’) N n 78 $4E Ord(‘N’) O o 79 $4F Ord(‘O’) P p 80 $50 Ord(‘P’) Q q 81 $51 Ord(‘Q’) R r 82 $52 Ord(‘R’) S s 83 $53 Ord(‘S’) T t 84 $54 Ord(‘T’) U u 85 $55 Ord(‘U’) V v 86 $56 Ord(‘V’) W w 87 $57 Ord(‘W’) X x 88 $58 Ord(‘X’) Y y 89 $59 Ord(‘Y’) Z z 90 $5A Ord(‘Z’)

Правая клавиатура при выключенной клавише NumLock:

Источник

Советы мастера