Коды клавиш клавиатуры: Коды клавиш клавиатуры и мыши
Клавиша
|
Обозначение
|
10-ный код
|
16-ный код
|
забой | DOM_VK_BACK_SPACE | 8 | 0x08 |
Tab | DOM_VK_TAB | 9 | 0x09 |
Enter | DOM_VK_ENTER | 13 | 0x0D |
Shift | DOM_VK_SHIFT | 16 | 0x10 |
Ctrl | DOM_VK_CONTROL | 17 | 0x11 |
Alt | DOM_VK_ALT | 18 | 0x12 |
Pause | DOM_VK_PAUSE | 19 | 0x13 |
CapsLock | DOM_VK_CAPS_LOCK | 20 | 0x14 |
Esc | DOM_VK_ESCAPE | 27 | 0x1B |
пробел | DOM_VK_SPACE | 32 | 0x20 |
PageUp | DOM_VK_PAGE_UP | 33 | 0x21 |
PageDown | DOM_VK_PAGE_DOWN | 34 | 0x22 |
End | DOM_VK_END | 35 | 0x23 |
Home | DOM_VK_HOME | 36 | 0x24 |
стрелка влево | DOM_VK_LEFT | 37 | 0x25 |
стрелка вверх | DOM_VK_UP | 38 | 0x26 |
стрелка вправо | DOM_VK_RIGHT | 39 | 0x27 |
стрелка вниз | DOM_VK_DOWN | 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 | DOM_VK_F1 | 112 | 0x70 |
F2 | DOM_VK_F2 | 113 | 0x71 |
F3 | DOM_VK_F3 | 114 | 0x72 |
F4 | DOM_VK_F4 | 115 | 0x73 |
F5 | DOM_VK_F5 | 116 | 0x74 |
F6 | DOM_VK_F6 | 117 | 0x75 |
F7 | DOM_VK_F7 | 118 | 0x76 |
F8 | DOM_VK_F8 | 119 | 0x77 |
F9 | DOM_VK_F9 | 120 | 0x78 |
F10 | DOM_VK_F10 | 121 | 0x79 |
F11 | DOM_VK_F11 | 122 | 0x7A |
F12 | DOM_VK_F12 | 123 | 0x7B |
NumLock | DOM_VK_NUM_LOCK | 144 | 0x90 |
ScrollLock | DOM_VK_SCROLL_LOCK | 145 | 0x91 |
PrintScreen | DOM_VK_PRINTSCREEN | 154 | 0x9A |
Meta | DOM_VK_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 |
Скан-коды клавиатуры — Assembler — Programming — Каталог статей
Скан-коды клавиатуры
Функциональные клавиши | ||
Клавиша | Коды | |
DEC | HEX | |
F1 | 59 | 3B |
F2 | 60 | 3C |
F3 | 61 | 3D |
F4 | 62 | 3E |
F5 | 63 | 3F |
F6 | 64 | 40 |
F7 | 65 | 41 |
F8 | 66 | 42 |
F9 | 67 | 43 |
F10 | 68 | 44 |
F11 | 87 | 57 |
F12 | 88 | 58 |
Упрвляющие клавиши | ||
Клавиша | Коды | |
DEC | HEX | |
ESC | 1 | 01 |
PrintScreen | 55 | 37 |
ScrollLock | 70 | 46 |
CapsLock | 58 | 3A |
NumLock | 325 | 145 |
BackSpace | 14 | 0E |
Tab | 15 | 0F |
Enter | 28 | 1C |
Left Ctrl | 29 | 1D |
Right Ctrl | 285 | 11D |
Left Shift | 42 | 2A |
Right Shift | 54 | 36 |
Alt* | 56 | 38 |
Буквенно-цифровая клавиатура | ||
Клавиша | Коды | |
DEC | HEX | |
` | 41 | 29 |
1 | 2 | 02 |
2 | 3 | 03 |
3 | 4 | 04 |
5 | 6 | 06 |
6 | 7 | 07 |
7 | 8 | 08 |
8 | 9 | 09 |
9 | 10 | 0A |
0 | 11 | 0B |
— | 12 | 0C |
= | 13 | 0D |
\ | 43 | 2B |
q | 16 | 10 |
w | 17 | 11 |
e | 18 | 12 |
r | 19 | 13 |
t | 20 | 14 |
y | 21 | 15 |
u | 22 | 16 |
i | 23 | 17 |
o | 24 | 18 |
p | 25 | 19 |
[ | 26 | 1A |
] | 27 | 1B |
a | 30 | 1E |
s | 31 | 1F |
d | 32 | 20 |
f | 33 | 21 |
g | 34 | 22 |
h | 35 | 23 |
j | 36 | 24 |
k | 37 | 25 |
l | 38 | 26 |
; | 39 | 27 |
‘ | 40 | 28 |
z | 44 | 2C |
x | 45 | 2D |
c | 46 | 2E |
v | 47 | 2F |
b | 48 | 30 |
n | 49 | 31 |
m | 50 | 32 |
, | 51 | 33 |
. | 52 | 34 |
/ | 53 | 35 |
Пробел | 57 | 39 |
Дополнительная клавиатура | ||
Клавиша | Коды | |
DEC | HEX | |
Insert | 338 | 152 |
Delete | 339 | 153 |
Home | 327 | 147 |
End | 335 | 14F |
PageUp | 329 | 149 |
PageDown | 337 | 151 |
Up | 328 | 148 |
Down | 336 | 150 |
Left | 331 | 14B |
Right | 333 | 14D |
Цифровая клавиатура | ||
Клавиша | Коды | |
DEC | HEX | |
/ | 309 | 135 |
* | 55 | 37 |
— | 74 | 4A |
+ | 78 | 4E |
Enter | 284 | 11C |
0 | 82 | 52 |
1 | 79 | 4F |
2 | 80 | 50 |
3 | 81 | 51 |
4 | 75 | 4B |
5 | 76 | 4C |
6 | 77 | 4D |
7 | 71 | 47 |
8 | 72 | 48 |
9 | 73 | 49 |
Источник: http://www.ntlib.chat.ru/ware/tables/scan.htm
Номера клавиш и скан-коды клавиатуры
При нажатии клавиши интегрированный в клавиатуру процессор вычисляет координаты нажатой клавиши в матрице. Далее он отправляет материнской плате пакет данных, в котором содержится скан-код используемой клавиши.
Это принято называть кодом активизации. Когда клавиша отпущена, генерируется код останова, которые указывает, что клавиша вернулась в исходное положение. Код останова равен коду активизации плюс 80h. К примеру, если код активизации 1Eh (клавиша «A»), то код останова будет равен 9Eh. Данные коды необходимы для определения нажатой клавиши (или комбинации клавиш).
В компьютерах AT контролер, установленный в клавиатуре, преобразует сгенерированный скан-код в один из скан-кодов, предусмотренных в системе, и отправляет его центральному процессору. Иногда необходимо знать данные скан-коды, особенно в процессе поиска неисправностей в клавиатуре или если необходимо считать скан-код в приложении.
Если клавиша выходит из строя или «залипает», программа диагностики, например процедура POST, обычно выдает ее скан-код. Это означает, что идентифицировать конкретную клавишу придется именно по данному коду.
В клавиатурах IBM каждая клавиша имеет уникальный номер, что дает возможность отличать ее от других. Данные номера необходимо знать для идентификации клавиши на зарубежных клавиатурах, поскольку она может иметь другие символы. В большинстве других моделях и в расширенных клавиатурах убрана одна из клавиш (№29), но добавлены две другие (№45 и №42). В итоге общее их количество увеличилось до 102.
Существует большое количество «горячих» клавиш, которые в клавиатурах USB и расширенных клавиатурах могут использоваться для запуска определенных операций (например, переход в спящий режим, запуск обозревателя, регулировка уровня громкости и так далее), так и функций, назначенных пользователем. Все «горячие» клавиши обладают собственным скан-кодом.
Коды виртуальных клавиш
Коды виртуальных клавиш
Коды виртуальных клавиш
Код клавиши является целым числом, определяющим клавишу, а не символ. Например, клавиша 1 имеет тот же самый код виртуальной клавиши — нажата ли 1 или ! Включают в себя коды виртуальных клавиш клавиатуры, а также «виртуальные» элементы типа трех кнопок мыши. Виртуальные клавиши также включают в себя такие «клавиши», которых обычно не существуют вообще! Код виртуальной клавиши не изменяется, когда нажаты клавиши- модификаторы (Ctrl, Alt, Shift, и т.д.). Однако, цифры на цифровой клавиатуре имеют два различных кода виртуальной клавиши: один, когда NumLock включен, и другой, когда NumLock выключен. Обратите внимание, что коды виртуальной клавиши 0-9 и A-Z равняются их кодам ASCII.
Примечание: Фактические значения некоторых из кодов клавиш могут различаться на клавиатуре, предназначенной для различных языков. Особенно, VK_OEM_*, которым обозначают клавишу пунктуации. Значения, перечисленные ниже — для Американской клавиатуры
Виртуальные коды клавиш
- VK_LBUTTON = &h2
- Левая кнопка мыши
- VK_RBUTTON = &h3
- Правая кнопка мыши
- VK_CANCEL = &h4
- Виртуальная клавиша Отмены, используемая для обработки комбинации клавиш Control-Break
- VK_MBUTTON = &h5
- Средняя кнопка мыши
- VK_BACK = &H8
- Backspace
- VK_TAB = &H9
- Tab
- VK_CLEAR = &HC
- 5 (на цифровой клавиатуре без Num Lock)
- VK_RETURN = &HD
- Enter
- VK_SHIFT = &h20
- Shift (любая)
- VK_CONTROL = &h21
- Ctrl (любая)
- VK_MENU = &h22
- Alt (любая)
- VK_PAUSE = &h23
- Pause
- VK_CAPITAL = &h24 (VB .NET:VK_CAPITAL As Short = &h24S)
- Caps Lock
- VK_ESCAPE = &h2B
- Esc
- VK_SPACE = &h30
- Spacebar
- VK_PRIOR = &h31
- Page Up
- VK_NEXT = &h32
- Page Down
- VK_END = &h33
- End
- VK_HOME = &h34
- Home
- VK_LEFT = &h35
- Стрелка влево
- VK_UP = &h36
- Стрелка вверх
- VK_RIGHT = &h37
- Стрелка вправо
- VK_DOWN = &h38
- Стрелка вниз
- VK_SELECT = &h39
- Select
- VK_PRINT = &h3A
- Print (используемый только Nokia-клавиатурой)
- VK_EXECUTE = &h3B
- Execute (не используется)
- VK_SNAPSHOT = &h3C
- Print Screen
- VK_INSERT = &h3D
- Insert
- VK_DELETE = &h3E
- Delete
- VK_HELP = &h3F
- Help
- VK_0 = &h40
- 0
- VK_1 = &h41
- 1
- VK_2 = &h42
- 2
- VK_3 = &h43
- 3
- VK_4 = &h44
- 4
- VK_5 = &h45
- 5
- VK_6 = &h46
- 6
- VK_7 = &h47
- 7
- VK_8 = &h48
- 8
- VK_9 = &h49
- 9
- VK_A = &h51
- A
- VK_B = &h52
- B
- VK_C = &h53
- C
- VK_D = &h54
- D
- VK_E = &h55
- E
- VK_F = &h56
- F
- VK_G = &h57
- G
- VK_H = &h58
- H
- VK_I = &h59
- I
- VK_J = &h5A
- J
- VK_K = &h5B
- K
- VK_L = &h5C
- L
- VK_M = &h5D
- M
- VK_N = &h5E
- N
- VK_O = &h5E
- O
- VK_P = &H50
- P
- VK_Q = &H51
- Q
- VK_R = &H52
- R
- VK_S = &H53
- S
- VK_T = &H54
- T
- VK_U = &H55
- U
- VK_V = &H56
- V
- VK_W = &H57
- W
- VK_X = &H58
- X
- VK_Y = &H59
- Y
- VK_Z = &H5A
- Z
- VK_STARTKEY = &H5B
- Start Menu
- VK_CONTEXTKEY = &H5D
- Context Menu
- VK_NUMPAD0 = &H60
- 0 (с Num Lock)
- VK_NUMPAD1 = &H61
- 1 (с Num Lock)
- VK_NUMPAD2 = &H62
- 2 (с Num Lock)
- VK_NUMPAD3 = &H63
- 3 (с with Num Lock)
- VK_NUMPAD4 = &H64
- 4 (с with Num Lock)
- VK_NUMPAD5 = &H65
- 5 (с Num Lock)
- VK_NUMPAD6 = &H66
- 6 (с Num Lock)
- VK_NUMPAD7 = &H67
- 7 (с Num Lock)
- VK_NUMPAD8 = &H68
- 8 (с Num Lock)
- VK_NUMPAD9 = &H69
- 9 (с with Num Lock)
- VK_MULTIPLY = &H6A
- * (цифровая клавиатура)
- VK_ADD = &H6B
- + (цифровая клавиатура)
- VK_SEPARATER = &H6C
- Separator (never generated by the keyboard)
- VK_DECIMAL = &H6E
- . (с Num Lock)
- VK_DIVIDE = &H6F
- / (цифровая клавиатура)
- VK_F1 = &H70
- F1
- VK_F2 = &H71
- F2
- VK_F3 = &H72
- F3
- VK_F4 = &H73
- F4
- VK_F5 = &H74
- F5
- VK_F6 = &H75
- F6
- VK_F7 = &H76
- F7
- VK_F8 = &H77
- F8
- VK_F9 = &H78
- F9
- VK_F10 = &H79
- F10
- VK_F11 = &H7A
- F11
- VK_F12 = &H7B
- F12
- VK_F13 = &H7C
- F13
- VK_F14 = &H7D
- F14
- VK_F15 = &H7E
- F15
- VK_F16 = &H7F
- F16
- VK_F17 = &H80
- F17
- VK_F18 = &H81
- F18
- VK_F19 = &H82
- F19
- VK_F20 = &H83
- F20
- VK_F21 = &H84
- F21
- VK_F22 = &H85
- F22
- VK_F23 = &H86
- F23
- VK_F24 = &H87
- F24
- VK_NUMLOCK = &H90 (VB .NET:VK_NUMLOCK As Short = &H90S)
- Num Lock
- VK_SCROLL = &H91 (VB .NET:VK_SCROLL As Short = &H91S)
- Scroll Lock
- VK_OEM_1 = &HBA
- ;
- VK_OEM_PLUS = &HBB
- =
- VK_OEM_COMMA = &HBC
- ,
- VK_OEM_MINUS = &HBD
- —
- VK_OEM_PERIOD = &HBE
- .
- VK_OEM_2 = &HBF
- /
- VK_OEM_3 = &HC0
- `
- VK_OEM_4 = &HDB
- [
- VK_OEM_5 = &HDC
- \
- VK_OEM_6 = &HDD
- ]
- VK_OEM_7 = &HDE
- ‘
- VK_OEM_8 = &HDF
- (unknown)
- VK_ICO_F17 = &HE0
- F17 на Olivetti расширенной клавиатуре (внутреннее использование только)
- VK_ICO_F18 = &HE1
- F18 на Olivetti расширенной клавиатуре (внутреннее использование только)
- VK_OEM_102 = &HE2
- VK_ICO_HELP = &HE3
- Help на Olivetti расширенной клавиатуре (внутреннее использование только)
- VK_ICO_00 = &HE4
- 00 на Olivetti расширенной клавиатуре (внутреннее использование только)
- VK_ICO_CLEAR = &HE6
- Clear на Olivetti расширенной клавиатуре (внутреннее использование только)
- VK_OEM_RESET = &HE9
- Reset (Nokia keyboards only)
- VK_OEM_JUMP = &HEA
- Jump (Nokia keyboards only)
- VK_OEM_PA1 = &HEB
- PA1 (Nokia keyboards only)
- VK_OEM_PA2 = &HEC
- PA2 (Nokia keyboards only)
- VK_OEM_PA3 = &HED
- PA3 (Nokia keyboards only)
- VK_OEM_WSCTRL = &HEE
- WSCTRL (Nokia keyboards only)
- VK_OEM_CUSEL = &HEF
- CUSEL (Nokia keyboards only)
- VK_OEM_ATTN = &HF0
- ATTN (Nokia keyboards only)
- VK_OEM_FINNISH = &HF1
- FINNISH (Nokia keyboards only)
- VK_OEM_COPY = &HF2
- COPY (Nokia keyboards only)
- VK_OEM_AUTO = &HF3
- AUTO (Nokia keyboards only)
- VK_OEM_ENLW = &HF4
- ENLW (Nokia keyboards only)
- VK_OEM_BACKTAB = &HF5
- BACKTAB (Nokia keyboards only)
- VK_ATTN = &HF6
- ATTN
- VK_CRSEL = &HF7
- CRSEL
- VK_EXSEL = &HF8
- EXSEL
- VK_EREOF = &HF9
- EREOF
- VK_PLAY = &HFA
- PLAY
- VK_ZOOM = &HFB
- ZOOM
- VK_NONAME = &HFC
- NONAME
- VK_PA1 = &HFD
- PA1
- VK_OEM_CLEAR = &HFE
- CLEAR
Используется в
GetAsyncKeyState, GetKeyboardState, GetKeyState, keybd_event, KEYBDINPUT, SetKeyboardState
Ремаппинг клавиш на клавиатуре / Хабр
Всю свою жизнь был фанатом бесшумных, тонких, и красивых клавиатур и к моему удивлению обнаружил что таковых не так уж и много, из доступных в свободной продаже, — их единицы. Пришлось пользоваться «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
Коды клавиш клавиатуры Википедия
Скан-код (англ. scan code) — в IBM-совместимых компьютерах код, присвоенный каждой клавише, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата. При нажатии любой клавиши контроллер клавиатуры распознаёт клавишу и посылает её скан-код в порт 60h. При отпускании клавиши контроллер клавиатуры устаревшего формата IBM PC/XT посылает в тот же порт скан-код, увеличенный на 80h, а более нового формата IBM PC/AT — два байта: F0h и скан-код (скан-коды клавиатуры AT также отличаются от XT, см. таблицу). Некоторые клавиши генерируют не один, а несколько скан-кодов (так, правые Alt, Ctrl, ↵ Enter, обе ⊞ Win, а также ≣ Menu, Insert, Delete, Page Up, Page Down, Home, End, стрелки и все ACPI- и мультимедиа-клавиши генерируют два скан-кода, первый из которых — E0, клавиша PrtScr генерирует 4 скан-кода, а клавиша Pause — даже 6 скан-кодов). Каждый байт, записанный в порт 60h, генерирует аппаратное прерывание int 09h.
Скан-коды жёстко привязаны к каждой клавише на аппаратном уровне и не зависят ни от состояния индикаторов ⇪ Caps Lock, Num Lock и Scroll Lock, ни от состояния управляющих клавиш (⇧ Shift, Alt, Ctrl).
Скан-коды клавиш
Все скан-коды ниже даются в шестнадцатеричной системе.
Большинство скан-кодов на XT-клавиатуре соответствуют физическому местоположению клавиш, начиная с клавиш Esc (код 01) и цифровых клавиш 1-9 (коды 02-0A). К примеру, клавиши второго ряда (Tab ↹ Q W E R T Y U I O P [ ] ↵ Enter) имеют последовательные скан-коды 0F-1C (15-28 в десятичной системе).
На клавиатурах другой раскладки (например, AZERTY) скан-коды соответствуют расположению клавиш: так, у французского A скан-код как у американского Q. Преобразованием скан-кодов в коды нажатых клавиш занимается ОС или BIOS.
Во всех операционных системах фирмы Microsoft, скан коды из набора 2 (AT) преобразуются в скан коды набора 1 (XT), и все приложения получают уже скан коды набора 1.[1]
Клавиша | Код нажатия XT | Код отпускания XT | Код нажатия AT | Код отпускания AT |
---|---|---|---|---|
Основная клавиатура | ||||
A | 1E | 9E | 1C | F0,1C |
B | 30 | B0 | 32 | F0,32 |
C | 2E | AE | 21 | F0,21 |
D | 20 | A0 | 23 | F0,23 |
E | 12 | 92 | 24 | F0,24 |
F | 21 | A1 | 2B | F0,2B |
G | 22 | A2 | 34 | F0,34 |
H | 23 | A3 | 33 | F0,33 |
I | 17 | 97 | 43 | F0,43 |
J | 24 | A4 | 3B | F0,3B |
K | 25 | A5 | 42 | F0,42 |
L | 26 | A6 | 4B | F0,4B |
M | 32 | B2 | 3A | F0,3A |
N | 31 | B1 | 31 | F0,31 |
O | 18 | 98 | 44 | F0,44 |
P | 19 | 99 | 4D | F0,4D |
Q | 10 | 90 | 15 | F0,15 |
R | 13 | 93 | 2D | F0,2D |
S | 1F | 9F | 1B | F0,1B |
T | 14 | 94 | 2C | F0,2C |
U | 16 | 96 | 3C | F0,3C |
V | 2F | AF | 2A | F0,2A |
W | 11 | 91 | 1D | F0,1D |
X | 2D | AD | 22 | F0,22 |
Y | 15 | 95 | 35 | F0,35 |
Z | 2C | AC | 1A | F0,1A |
0 | 0B | 8B | 45 | F0,45 |
1 | 02 | 82 | 16 | F0,16 |
2 | 03 | 83 | 1E | F0,1E |
3 | 04 | 84 | 26 | F0,26 |
4 | 05 | 85 | 25 | F0,25 |
5 | 06 | 86 | 2E | F0,2E |
6 | 07 | 87 | 36 | F0,36 |
7 | 08 | 88 | 3D | F0,3D |
8 | 09 | 89 | 3E | F0,3E |
9 | 0A | 8A | 46 | F0,46 |
~ | 29 | 89 | 0E | F0,0E |
- | 0C | 8C | 4E | F0,4E |
= | 0D | 82 | 55 | F0,55 |
\ | 2B | AB | 5D | F0,5D |
[ | 1A | 9A | 54 | F0,54 |
] | 1B | 9B | 5B | F0,5B |
; | 27 | A7 | 4C | F0,4C |
' | 28 | A8 | 52 | F0,52 |
, | 33 | B3 | 41 | F0,41 |
. | 34 | B4 | 49 | F0,49 |
/ | 35 | B5 | 4A | F0,4A |
BS | 0E | 8E | 66 | F0,66 |
Space | 39 | B9 | 29 | F0,29 |
Tab ↹ | 0F | 8F | 0D | F0,0D |
⇪ Caps Lock | 3A | BA | 58 | F0,58 |
Левый ⇧ Shift | 2A | AA | 12 | F0,12 |
Левый Ctrl | 1D | 9D | 14 | F0,14 |
Левый Alt | 38 | B8 | 11 | F0,11 |
Левый ⊞ Win | E0,5B | E0,DB | E0,1F | E0,F0,1F |
Правый ⇧ Shift | 36 | B6 | 59 | F0,59 |
Правый Ctrl | E0,1D | E0,9D | E0,14 | E0,F0,14 |
Правый Alt | E0,38 | E0,B8 | E0,11 | E0,F0,11 |
Правый ⊞ Win | E0,5C | E0,DC | E0,27 | E0,F0,27 |
≣ Menu | E0,5D | E0,DD | E0,2F | E0,F0,2F |
↵ Enter | 1C | 9C | 5A | F0,5A |
Esc | 01 | 81 | 76 | F0,76 |
F1 | 3B | BB | 05 | F0,05 |
F2 | 3C | BC | 06 | F0,06 |
F3 | 3D | BD | 04 | F0,04 |
F4 | 3E | BE | 0C | F0,0C |
F5 | 3F | BF | 03 | F0,03 |
F6 | 40 | C0 | 0B | F0,0B |
F7 | 41 | C1 | 83 | F0,83 |
F8 | 42 | C2 | 0A | F0,0A |
F9 | 43 | C3 | 01 | F0,01 |
F10 | 44 | C4 | 09 | F0,09 |
F11 | 57 | D7 | 78 | F0,78 |
F12 | 58 | D8 | 07 | F0,07 |
PrtScr | E0,2A,E0,37 | E0,B7,E0,AA | E0,12,E0,7C | E0,F0,7C,E0,F0,12 |
Alt+PrtScr | 54 (вместо PrtScr, код для клавиши Alt генерируется отдельно) | D4 (вместо PrtScr, код для клавиши Alt генерируется отдельно) | ? | ? |
Ctrl+PrtScr, ⇧ Shift+PrtScr (SysReq) | E0,37 (вместо PrtScr, код для Ctrl или ⇧ Shift генерируется отдельно) | E0,B7 (вместо PrtScr, код для Ctrl или ⇧ Shift генерируется отдельно) | ? | ? |
Scroll Lock | 46 | C6 | 7E | F0,7E |
Pause | E1,1D,45, E1,9D,C5 | — | E1,14,77, E1,F0,14,F0,77 | — |
Ctrl+Break (Ctrl+Pause) | E0,46 (вместо Break, код для клавиши Ctrl генерируется отдельно) | E0,C6 (вместо Break, код для клавиши Ctrl генерируется отдельно) | ? | ? |
Insert | E0,52 | E0,D2 | E0,70 | E0,F0,70 |
Home | E0,47 | E0,C7 | E0,6C | E0,F0,6C |
End | E0,4F | E0,CF | E0,69 | E0,F0,69 |
Page Up | E0,49 | E0,C9 | E0,7D | E0,F0,7D |
Page Down | E0,51 | E0,D1 | E0,7A | E0,F0,7A |
Delete | E0,53 | E0,D3 | E0,71 | E0,F0,71 |
↑ | E0,48 | E0,C8 | E0,75 | E0,F0,75 |
← | E0,4B | E0,CB | E0,6B | E0,F0,6B |
↓ | E0,50 | E0,D0 | E0,72 | E0,F0,72 |
→ | E0,4D | E0,CD | E0,74 | E0,F0,74 |
Цифровая клавиатура | ||||
Num Lock | 45 | C5 | 77 | F0,77 |
/ | E0,35 | E0,B5 | E0,4A | E0,F0,4A |
* | 37 | B7 | 7C | F0,7C |
- | 4A | CA | 7B | F0,7B |
+ | 4E | CE | 79 | F0,79 |
↵ Enter | E0,1C | E0,9C | E0,5A | E0,F0,5A |
. | 53 | D3 | 71 | F0,71 |
0 | 52 | D2 | 70 | F0,70 |
1 | 4F | CF | 69 | F0,69 |
2 | 50 | D0 | 72 | F0,72 |
3 | 51 | D1 | 7A | F0,7A |
4 | 4B | CB | 6B | F0,6B |
5 | 4C | CC | 73 | F0,73 |
6 | 4D | CD | 74 | F0,74 |
7 | 47 | C7 | 6C | F0,6C |
8 | 48 | C8 | 75 | F0,75 |
9 | 49 | C9 | 7D | F0,7D |
Клавиши ACPI | ||||
Power | E0,5E | E0,DE | E0,37 | E0,F0,37 |
Sleep | E0,5F | E0,DF | E0,3F | E0,F0,3F |
Wake | E0,63 | E0,E3 | E0,5E | E0,F0,5E |
Мультимедиа клавиши | ||||
Управление проигрывателем | ||||
Следующий трек | E0,19 | E0, 99 | E0, 4D | E0,F0,4D |
Предыдущий трек | E0,10 | E0, 90 | E0,15 | E0,F0,15 |
Остановить | E0,24 | E0,A4 | E0,3B | E0,F0,3B |
Проигрывать/пауза | E0,22 | E0,A2 | E0,34 | E0,F0,34 |
Звук вкл/откл | E0,20 | E0,A0 | E0,23 | E0,F0,23 |
Увеличить громкость | E0,30 | E0,B0 | E0,32 | E0,F0,32 |
Уменьшить громкость | E0,2E | E0,AE | E0,21 | E0,F0,21 |
Управление браузером | ||||
Поиск | E0,65 | E0,E5 | E0,10 | E0,F0,10 |
Домашняя страница | E0,32 | E0,B2 | E0,3A | E0,F0,3A |
Назад | E0,6A | E0,EA | E0,38 | E0,F0,38 |
Вперед | E0,69 | E0,E9 | E0,30 | E0,F0,30 |
Стоп | E0,68 | E0, E8 | E0,28 | E0,F0,28 |
Обновить | E0,67 | E0,E7 | E0,20 | E0,F0,20 |
Закладки | E0,66 | E0, E6 | E0,18 | E0,F0,18 |
Управление приложениями | ||||
Media Select | E0,6D | E0,ED | E0,50 | E0,F0,50 |
Электронная почта | E0,6C | E0,EC | E0,48 | E0,F0,48 |
Калькулятор | E0,21 | E0,A1 | E0,2B | E0,F0,2B |
Мой компьютер | E0,6B | E0,EB | E0,40 | E0,F0,40 |
В чистом DOS клавиша Pause генерирует 6 скан-кодов при нажатии и не генерирует скан-кодов при удержании и отпускании. Под Windows же (в том числе и в VMware и DOSBox) клавиша Pause работает так же, как и любая другая: при нажатии и удержании генерирует скан-коды E1,1D,45, а при отпускании — E1,9D,C5.
Коды клавиш ↓ , ↑ , ← , → , Home , End , Page Up , Page Down , Insert , Delete могут содержать кроме указанных в таблице дополнительно: E0,2A — при нажатии (до основного кода), E0,AA — при отпускании (после основного кода). А при удержании клавиши ⇧ Shift наоборот: E0,AA — при нажатии (до основного кода), E0,2A — при отпускании (после основного кода), код клавиши ⇧ Shift при этом генерируется отдельно.
См. также
Ссылки
B. Значения кодов клавиш клавиатуры
Приложение B. Значения кодов клавиш клавиатуры
Коды клавиш — это числовые значения, которые соответствуют физическим клавишам на клавиатуре, но не обязательно соответствуют конкретному символу. Например, клавиша A на клавиатуре при нажатии создает тот же код клавиши, даже если ее символьный код может быть 65 (заглавная A) или 97 (строчная a), в зависимости от того, нажата ли клавиша Shift одновременно. Коды клавиш не зависят от клавиш-модификаторов.Значения символов (см. Приложение A) могут быть считаны из события keypress
, тогда как значения клавиш, включая навигационные и функциональные клавиши, доступны из событий keydown
и keyup
. В следующей таблице перечислены все клавиши типичной английской клавиатуры (США) и их соответствующие коды клавиш.
Ключ | Ключевое значение | Ключевое значение | Ключевое значение | ||||||||||||||||||||||||||||||||||
Альтернативный | 18 | 18 | 900 | ||||||||||||||||||||||||||||||||||
Стрелка вниз | 40 | F6 | 117 | ||||||||||||||||||||||||||||||||||
Стрелка влево | 37 | F7 | 0 | ||||||||||||||||||||||||||||||||||
Стрелка вверх | 38 | F9 | 120 65 | 9002 | F10 | ||||||||||||||||||||||||||||||||
Caps Lock | 20 | F1 | 122 | ||||||||||||||||||||||||||||||||||
Ctrl | 17 | 20 | |||||||||||||||||||||||||||||||||||
Удалить | 46 | Начало | 36 | ||||||||||||||||||||||||||||||||||
Конец | 35 | Вставка | 45 | 13 | Num Lock | 144 | |||||||||||||||||||||||||||||||
Esc | 27 | (NumPad) — | 109000 | 109000 | |||||||||||||||||||||||||||||||||
(NumPad) * | 106 | ||||||||||||||||||||||||||||||||||||
F2 | 113 | (NumPad). | 110 | ||||||||||||||||||||||||||||||||||
F3 | 114 | (NumPad) / | 111 | ||||||||||||||||||||||||||||||||||
F4 | 02 11517 F4 | 02 115 | 107 | ||||||||||||||||||||||||||||||||||
(NumPad) 0 | 96 | P | 80 | ||||||||||||||||||||||||||||||||||
NumPad) 1 | 02 0 | 81 | |||||||||||||||||||||||||||||||||||
(NumPad) 2 | 98 | R | 82 | ||||||||||||||||||||||||||||||||||
NumPad) 3 | 02 9917 | 83 | |||||||||||||||||||||||||||||||||||
(NumPad) 4 | 100 | T | 84 | ||||||||||||||||||||||||||||||||||
(NumPad) 5 | 101 | U | 85 | ||||||||||||||||||||||||||||||||||
(NumPad) 6 | 02 102 900 | 86 | |||||||||||||||||||||||||||||||||||
(NumPad) 7 | 103 | W | 87 | ||||||||||||||||||||||||||||||||||
(NumPad) 8 | 02 10417 | 02 104 9000 | 88 | ||||||||||||||||||||||||||||||||||
(NumPad) 9 | 105 | Y | 89 | ||||||||||||||||||||||||||||||||||
Page Down | 34 | 90 | |||||||||||||||||||||||||||||||||||
Страница вверх | 33 | 1 | 49 | ||||||||||||||||||||||||||||||||||
Пауза | 19 | 2 | 50 | ||||||||||||||||||||||||||||||||||
Печать | 44 | 02 3 0Scroll Lock 145 4 52 Сдвиг 16 5 53 53 032 6 54 Табуляция 9 7 55 2 08 56 C 67 0 48 65 368 ' 222 E 69 - 189 F17 02 | F17 02 | 188 | |||||||||||||||||||||||||||||||||
G | 71 | . | 190 | ||||||||||||||||||||||||||||||||||
H | 72 | / | 191 | ||||||||||||||||||||||||||||||||||
I | 73 | 186 | |||||||||||||||||||||||||||||||||||
J | 74 | [ | 219 | ||||||||||||||||||||||||||||||||||
K | 75 | 075 | 0 | ||||||||||||||||||||||||||||||||||
L | 76 | ] | 221 | ||||||||||||||||||||||||||||||||||
M | 77 | ' | 02 192 ' | 02 192 9000 0 900 | 78 | = | 187 | ||||||||||||||||||||||||||||||
O | 79 |
B
66
9
57
.
Отображение кодов и названий виртуальных клавиш для клавиш клавиатуры
Рейтинги пользователей:
[Всего: 0 Среднее: 0/5]
Keyboard Codes Display - это бесплатное программное обеспечение , которое показывает виртуальные коды клавиш и названия клавиш . Когда вы нажимаете клавишу, отображается виртуальный код (или альтернативный код клавиши), связанный с этой конкретной клавишей.Например, нажатие на букву «а» отобразит его код, который равен «65». Таким образом, нажатие кода Alt + 65 (с помощью цифровой клавиатуры) в каком-нибудь текстовом редакторе введет букву «A». Так что для тех, кто хочет проверить коды, связанные со всеми клавишами клавиатуры, это действительно хорошее программное обеспечение.
Помимо этого, он также показывает имя для несимвольных ключей и / или значение ключа. В его интерфейсе есть две основные вкладки, где вы можете нажать клавишу, чтобы найти ее значение и проверить список кодов всех клавиш.
Мы также добавили бесплатное программное обеспечение для проверки клавиш на клавиатуре.
Как отобразить виртуальный код клавиши для каждой отдельной клавиши клавиатуры?
Перейдите на страницу загрузки этого программного обеспечения и возьмите zip-файл. Извлеките этот файл, и вы получите его переносимый файл. Запустите его, чтобы открыть интерфейс этого программного обеспечения.
Вы увидите две вкладки: События и Коды виртуальных клавиш .
События Вкладка отображает ключевые сообщения. Это означает, что он покажет, какая клавиша нажата вами (KeyDown), каков ее код и выпущенная вами клавиша (KeyUp).Вы можете удалить все сообщения, когда захотите.
Коды виртуальных клавиш На вкладке отображается список всех кодов клавиш.
Он также отображает коды для специальных символов, но связанные символы не отображаются. Вам нужно вручную проверить, какой код приводит к какому символу.
Вывод:
С помощью этого программного обеспечения становится действительно легко проверить все коды альтернативных клавиш. Все, что вам нужно сделать, это нажать клавишу, и код / значение клавиши будут перед вами.
Получите программное обеспечение для отображения кодов клавиатуры.
.