Скан-код


Скан -код (или скан-код ) — это данные, которые большинство компьютерных клавиатур отправляют на компьютер , чтобы сообщить, какие клавиши были нажаты. Каждой клавише на клавиатуре назначается число или последовательность чисел.

Отображение ключевых позиций по строкам и столбцам требует менее сложного компьютерного оборудования ; поэтому в прошлом использование программного обеспечения или микропрограммы для преобразования скан-кодов в текстовые символы было дешевле, чем подключение клавиатуры к текстовому символу. [1] Эта разница в стоимости уже не так значительна, как раньше. Однако многие типы компьютеров по-прежнему используют свои традиционные скан-коды для обеспечения обратной совместимости .

Некоторые стандарты клавиатуры включают скан-код для каждой нажатой клавиши и отдельный код для каждой отпущенной клавиши. Кроме того, многие стандарты клавиатуры (например, стандарты , совместимые с IBM PC ) позволяют самой клавиатуре генерировать « печатные » повторяющиеся клавиши, заставляя саму клавиатуру многократно генерировать скан-код нажатия клавиши, пока клавиша удерживается нажатой, с отправкой скан-кода освобождения. один раз при отпускании ключа.

В некоторых операционных системах можно обнаружить скан-код нажатия клавиши, удерживая клавишу нажатой во время загрузки компьютера. Если повезет, скан-код (или какая-то его часть) будет указан в полученном сообщении об ошибке «залипание ключа». [Примечание: в Windows 7 отображается только один байт скан-кода.]

Скан-коды на компьютерных клавиатурах , совместимых с IBM PC, представляют собой наборы от 1 до 3 байтов , которые отправляются клавиатурой. Большинство символьных клавиш имеют однобайтовый скан-код; клавиши, выполняющие специальные функции, имеют 2-байтовые или 3-байтовые скан-коды, обычно начинающиеся с байта (в шестнадцатеричном формате) , , или . Кроме того, некоторые клавиши отправляют более длинные скан-коды, эффективно эмулируя последовательность клавиш, что упрощает их обработку различными типами программного обеспечения.E0E1E2

Клавиатуры ПК, начиная с клавиатуры PS/2, поддерживают до трех наборов скан-кодов. Наиболее часто встречаются скан-коды «XT» («набор 1»), основанные на 83-клавишной клавиатуре, используемой в IBM PC XT и более ранних версиях. В основном они состоят из одного байта; младшие 7 бит идентифицируют клавишу, а старший бит очищается для нажатия клавиши или устанавливается для отпускания клавиши. Некоторые дополнительные ключи имеют префикс E0(или редко, E1или E2). Первоначально они были назначены таким образом, чтобы игнорирование E0префикса (который находится в диапазоне нажатия клавиши и, таким образом, не повлияет на операционную систему, которая их не понимает) давало разумные результаты. Например, клавиша Enter на цифровой клавиатуре создает скан-кодE0 1C, что соответствует скан-коду клавиши возврата 1C.