Русская Википедия:Скан-код

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

Скан-код (Шаблон:Lang-en) — в IBM-совместимых компьютерах код, присвоенный каждой клавише, с помощью которого драйвер клавиатуры распознает, какая клавиша была нажата. При нажатии любой клавиши контроллер клавиатуры распознаёт клавишу и посылает её скан-код в порт 60h. При отпускании клавиши контроллер клавиатуры устаревшего формата IBM PC/XT посылает в тот же порт скан-код, увеличенный на 80h, а более нового формата IBM PC/AT — два байта: F0h и скан-код (скан-коды клавиатуры AT также отличаются от XT, см. таблицу). Некоторые клавиши генерируют не один, а несколько скан-кодов (так, правые Шаблон:Key, Шаблон:Key, Шаблон:Key, обе Шаблон:Key, а также Шаблон:Key, Шаблон:Key, Шаблон:Key, Шаблон:Key, Шаблон:Key, Шаблон:Key, Шаблон:Key, стрелки и все ACPI- и мультимедиа-клавиши генерируют два скан-кода, первый из которых — E0, клавиша Шаблон:Key генерирует 4 скан-кода, а клавиша Шаблон:Key — даже 6 скан-кодов). Каждый байт, записанный в порт 60h, генерирует аппаратное прерывание int 09h.

Скан-коды жёстко привязаны к каждой клавише на аппаратном уровне и не зависят ни от состояния индикаторов Шаблон:Key, Шаблон:Key и Шаблон:Key, ни от состояния управляющих клавиш (Шаблон:Key, Шаблон:Key, Шаблон:Key).

Скан-коды клавиш

Все скан-коды ниже даются в шестнадцатеричной системе.

Большинство скан-кодов на XT-клавиатуре соответствуют физическому местоположению клавиш, начиная с клавиш Esc (код 01) и цифровых клавиш 1-9 (коды 02-0A). К примеру, клавиши второго ряда (Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key Шаблон:Key) имеют последовательные скан-коды 0F-1C (15-28 в десятичной системе).

На клавиатурах другой раскладки (например, AZERTY) скан-коды соответствуют расположению клавиш: так, у французского  A  скан-код как у американского  Q . Преобразованием скан-кодов в коды нажатых клавиш занимается ОС или BIOS.

Во всех операционных системах фирмы Microsoft, скан коды из набора 2 (AT) преобразуются в скан-коды набора 1 (XT), и все приложения получают уже скан-коды набора 1.[1]

Клавиша Код нажатия XT Код отпускания XT Код нажатия AT Код отпускания AT Код USB HID
Основная клавиатура
Шаблон:Key 1E 9E 1C F0,1C 04
Шаблон:Key 30 B0 32 F0,32 05
Шаблон:Key 2E AE 21 F0,21 06
Шаблон:Key 20 A0 23 F0,23 07
Шаблон:Key 12 92 24 F0,24 08
Шаблон:Key 21 A1 2B F0,2B 09
Шаблон:Key 22 A2 34 F0,34 0A
Шаблон:Key 23 A3 33 F0,33 0B
Шаблон:Key 17 97 43 F0,43 0C
Шаблон:Key 24 A4 3B F0,3B 0D
Шаблон:Key 25 A5 42 F0,42 0E
Шаблон:Key 26 A6 4B F0,4B 0F
Шаблон:Key 32 B2 3A F0,3A 10
Шаблон:Key 31 B1 31 F0,31 11
Шаблон:Key 18 98 44 F0,44 12
Шаблон:Key 19 99 4D F0,4D 13
Шаблон:Key 10 90 15 F0,15 14
Шаблон:Key 13 93 2D F0,2D 15
Шаблон:Key 1F 9F 1B F0,1B 16
Шаблон:Key 14 94 2C F0,2C 17
Шаблон:Key 16 96 3C F0,3C 18
Шаблон:Key 2F AF 2A F0,2A 19
Шаблон:Key 11 91 1D F0,1D 1A
Шаблон:Key 2D AD 22 F0,22 1B
Шаблон:Key 15 95 35 F0,35 1C
Шаблон:Key 2C AC 1A F0,1A 1D
Шаблон:Key 0B 8B 45 F0,45 27
Шаблон:Key 02 82 16 F0,16 1E
Шаблон:Key 03 83 1E F0,1E 1F
Шаблон:Key 04 84 26 F0,26 20
Шаблон:Key 05 85 25 F0,25 21
Шаблон:Key 06 86 2E F0,2E 22
Шаблон:Key 07 87 36 F0,36 23
Шаблон:Key 08 88 3D F0,3D 24
Шаблон:Key 09 89 3E F0,3E 25
Шаблон:Key 0A 8A 46 F0,46 26
Шаблон:Key 29 89 0E F0,0E 35
Шаблон:Key 0C 8C 4E F0,4E 2D
Шаблон:Key 0D 82 55 F0,55 2E
Шаблон:Key 2B AB 5D F0,5D 31 или 64
Шаблон:Key 1A 9A 54 F0,54 2F
Шаблон:Key 1B 9B 5B F0,5B 30
Шаблон:Key 27 A7 4C F0,4C 33
Шаблон:Key 28 A8 52 F0,52 34
Шаблон:Key 33 B3 41 F0,41 36
Шаблон:Key 34 B4 49 F0,49 37
Шаблон:Key 35 B5 4A F0,4A 38
Шаблон:Key 0E 8E 66 F0,66 2A
Шаблон:Key 39 B9 29 F0,29 2C
Шаблон:Key 0F 8F 0D F0,0D 2B
Шаблон:Key 3A BA 58 F0,58 39
Левый Шаблон:Key 2A AA 12 F0,12 E1
Левый Шаблон:Key 1D 9D 14 F0,14 E0
Левый Шаблон:Key 38 B8 11 F0,11 E2
Левый Шаблон:Key E0,5B E0,DB E0,1F E0,F0,1F E3
Правый Шаблон:Key 36 B6 59 F0,59 E5
Правый Шаблон:Key E0,1D E0,9D E0,14 E0,F0,14 E4
Правый Шаблон:Key E0,38 E0,B8 E0,11 E0,F0,11 E6
Правый Шаблон:Key E0,5C E0,DC E0,27 E0,F0,27 E7
Шаблон:Key E0,5D E0,DD E0,2F E0,F0,2F 65
Шаблон:Key 1C 9C 5A F0,5A 28
Шаблон:Key 01 81 76 F0,76 29
Шаблон:Key 3B BB 05 F0,05 3A
Шаблон:Key 3C BC 06 F0,06 3B
Шаблон:Key 3D BD 04 F0,04 3C
Шаблон:Key 3E BE 0C F0,0C 3D
Шаблон:Key 3F BF 03 F0,03 3E
Шаблон:Key 40 C0 0B F0,0B 3F
Шаблон:Key 41 C1 83 F0,83 40
Шаблон:Key 42 C2 0A F0,0A 41
Шаблон:Key 43 C3 01 F0,01 42
Шаблон:Key 44 C4 09 F0,09 43
Шаблон:Key 57 D7 78 F0,78 44
Шаблон:Key 58 D8 07 F0,07 45
Шаблон:Key E0,2A,E0,37 E0,B7,E0,AA E0,12,E0,7C E0,F0,7C,E0,F0,12 46
Шаблон:Key+Шаблон:Key 54 (вместо Шаблон:Key,

код для клавиши Шаблон:Key

генерируется отдельно)

D4 (вместо Шаблон:Key,

код для клавиши Шаблон:Key

генерируется отдельно)

? ?
Шаблон:Key+Шаблон:Key,

Шаблон:Key+Шаблон:Key

(Шаблон:Key)

E0,37 (вместо Шаблон:Key,

код для Шаблон:Key или Шаблон:Key

генерируется отдельно)

E0,B7 (вместо Шаблон:Key,

код для Шаблон:Key или Шаблон:Key

генерируется отдельно)

? ? 9A
Шаблон:Key 46 C6 7E F0,7E 47
Шаблон:Key E1,1D,45, E1,9D,C5 E1,14,77, E1,F0,14,F0,77 48
Шаблон:Key+Шаблон:Key

(Шаблон:Key+Шаблон:Key)

E0,46 (вместо Шаблон:Key,

код для клавиши Шаблон:Key

генерируется отдельно)

E0,C6 (вместо Шаблон:Key,

код для клавиши Шаблон:Key

генерируется отдельно)

? ?
Шаблон:Key E0,52 E0,D2 E0,70 E0,F0,70 49
Шаблон:Key E0,47 E0,C7 E0,6C E0,F0,6C 4A
Шаблон:Key E0,4F E0,CF E0,69 E0,F0,69 4D
Шаблон:Key E0,49 E0,C9 E0,7D E0,F0,7D 4B
Шаблон:Key E0,51 E0,D1 E0,7A E0,F0,7A 4E
Шаблон:Key E0,53 E0,D3 E0,71 E0,F0,71 4C
Шаблон:Key E0,48 E0,C8 E0,75 E0,F0,75 52
Шаблон:Key E0,4B E0,CB E0,6B E0,F0,6B 50
Шаблон:Key E0,50 E0,D0 E0,72 E0,F0,72 51
Шаблон:Key E0,4D E0,CD E0,74 E0,F0,74 4F
Цифровая клавиатура
Шаблон:Key 45 C5 77 F0,77 53
Шаблон:Key E0,35 E0,B5 E0,4A E0,F0,4A 54
Шаблон:Key 37 B7 7C F0,7C 55
Шаблон:Key 4A CA 7B F0,7B 56
Шаблон:Key 4E CE 79 F0,79 57
Шаблон:Key E0,1C E0,9C E0,5A E0,F0,5A 58
Шаблон:Key 53 D3 71 F0,71 63
Шаблон:Key 52 D2 70 F0,70 62
Шаблон:Key 4F CF 69 F0,69 59
Шаблон:Key 50 D0 72 F0,72 5A
Шаблон:Key 51 D1 7A F0,7A 5B
Шаблон:Key 4B CB 6B F0,6B 5C
Шаблон:Key 4C CC 73 F0,73 5D
Шаблон:Key 4D CD 74 F0,74 5E
Шаблон:Key 47 C7 6C F0,6C 5F
Шаблон:Key 48 C8 75 F0,75 60
Шаблон:Key 49 C9 7D F0,7D 61
Клавиши ACPI
Шаблон:Key E0,5E E0,DE E0,37 E0,F0,37 A5
Шаблон:Key E0,5F E0,DF E0,3F E0,F0,3F A6
Шаблон:Key E0,63 E0,E3 E0,5E E0,F0,5E A7
Мультимедиа-клавиши
Управление проигрывателем
Следующий трек E0,19 E0, 99 E0, 4D E0,F0,4D AB
Предыдущий трек E0,10 E0, 90 E0,15 E0,F0,15 AC
Остановить E0,24 E0,A4 E0,3B E0,F0,3B AD
Проигрывать/пауза E0,22 E0,A2 E0,34 E0,F0,34 AE
Звук вкл/откл E0,20 E0,A0 E0,23 E0,F0,23 A8
Увеличить громкость E0,30 E0,B0 E0,32 E0,F0,32 A9
Уменьшить громкость E0,2E E0,AE E0,21 E0,F0,21 AA
Управление браузером
Поиск E0,65 E0,E5 E0,10 E0,F0,10 B4
Домашняя страница E0,32 E0,B2 E0,3A E0,F0,3A B5
Назад E0,6A E0,EA E0,38 E0,F0,38 B6
Вперед E0,69 E0,E9 E0,30 E0,F0,30 B7
Стоп E0,68 E0, E8 E0,28 E0,F0,28 B8
Обновить E0,67 E0,E7 E0,20 E0,F0,20 B9
Закладки E0,66 E0, E6 E0,18 E0,F0,18 BA
Управление приложениями
Media Select E0,6D E0,ED E0,50 E0,F0,50 BO
Электронная почта E0,6C E0,EC E0,48 E0,F0,48 B1
Калькулятор E0,21 E0,A1 E0,2B E0,F0,2B B2
Мой компьютер E0,6B E0,EB E0,40 E0,F0,40 B3

Шаблон:Начало скрытого блока

Шаблон:Клавиатура компьютера

¹E0,2A,E0,37
²E1,1D,45, E1,9D,C5

Шаблон:Конец скрытого блокаШаблон:Начало скрытого блока Шаблон:Клавиатура компьютера

¹E0,12,E0,7C
²E1,14,77, E1,F0,14,F0,77

Шаблон:Конец скрытого блокаШаблон:Начало скрытого блока Шаблон:Клавиатура компьютера Шаблон:Конец скрытого блока В чистом DOS клавиша Шаблон:Key генерирует 6 скан-кодов при нажатии и не генерирует скан-кодов при удержании и отпускании. Под Windows же (в том числе и в VMware и DOSBox) клавиша Шаблон:Key работает так же, как и любая другая: при нажатии и удержании генерирует скан-коды E1,1D,45, а при отпускании — E1,9D,C5.

Коды клавиш Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key , Шаблон:Key могут содержать кроме указанных в таблице дополнительно: E0,2A — при нажатии (до основного кода), E0,AA — при отпускании (после основного кода). А при удержании клавиши Шаблон:Key наоборот: E0,AA — при нажатии (до основного кода), E0,2A — при отпускании (после основного кода), код клавиши Шаблон:Key при этом генерируется отдельно.

См. также

Литература

Ссылки

Шаблон:Нет источников