Номер нажатой клавиши на клавиатуре называется "скан-кодом" (scan code). Когда клавиша на клавиатуре нажимается или отпускается, клавиатура отправляет соответствующий скан-код в компьютер. Этот код представляет собой уникальное значение, которое идентифицирует конкретную клавишу на клавиатуре, независимо от того, какой символ она вводит.
Клавиатура не передает непосредственно символы или цифры, которые мы видим на экране. Вместо этого она отправляет скан-коды, которые затем интерпретируются операционной системой и драйверами клавиатуры. Эти программы преобразуют скан-коды в соответствующие символы или выполняют другие действия, такие как открытие меню или выполнение сочетаний клавиш.
Скан-коды могут быть различными для разных клавиатур и могут зависеть от раскладки клавиатуры. Например, клавиша "A" на стандартной клавиатуре QWERTY имеет один скан-код, а на клавиатуре с другой раскладкой (например, DVORAK) может иметь другой скан-код.
Скан-коды делятся на два типа:
- Make Code (код нажатия) — отправляется при нажатии клавиши.
- Break Code (код отпускания) — отправляется при отпускании клавиши.
Примером может служить клавиша "A" на клавиатуре. При нажатии этой клавиши клавиатура отправляет определенный make code (например, 0x1E), а при отпускании — соответствующий break code (например, 0x9E).
Обработка скан-кодов происходит на уровне аппаратного обеспечения и программного обеспечения. Контроллер клавиатуры (обычно встроенный в саму клавиатуру или в материнскую плату) сначала обрабатывает скан-коды, а затем передает их в операционную систему, которая интерпретирует их в зависимости от текущих настроек и программ.
Таким образом, скан-коды являются важным элементом в цепочке преобразования физического нажатия клавиши в действие или символ, который мы видим на экране.