Я купил мультимедийную клавиатуру (DIGITECH XC-4943). У него нет руководства, а некоторые ключи не имеют маркировки. Есть ли утилита (или некоторый код Delphi), которую я могу использовать для отображения сообщений, которые отправляет каждый ключ?
1 ответ
У вас есть разные варианты в зависимости от используемой вами ОС.
Во-первых, вы должны знать несколько терминов:scancode
- это самый низкий идентификационный номер ключа. Если у ключа нет скан-кода, мы ничего не можем сделать, потому что это означает, что ядро его не видит.
keycode
- это второй уровень идентификации ключа, код ключа соответствует функции.
symbol
- это третий уровень идентификации ключа, это способ, которым Xorg обращается к ключам.
Как пользователь Linux, вы можете использовать команду showkey
в терминале TTY для проверки кодов клавиш. Не используйте это под эмулятором терминала на Xorg. Если вы хотите использовать эмулятор терминала, используйте команду xev
из xorg-xev
.
Если вы не видите код клавиши на своем экране при нажатии клавиши, вы должны попытаться найти его коды сканирования и назначить им код клавиши.
Нажмите клавишу на терминале TTY и затем выполните:
$ dmesg|tail -5
Если вы видите что-то похожее на это:
atkbd.c: Unknown key pressed (translated set 2, code 0xf1 on isa0060/serio0).
atkbd.c: Use 'setkeycodes e071 <keycode>' to make it known.
Вы знаете, что ядро распознает нажатие клавиши, но ему не назначен код клавиши. Используйте установленные setkeycodes
как указано, чтобы назначить код ключа для кода сканирования.
РЕДАКТИРОВАТЬ: Дайте мне знать, если вы хотите больше информации о том, как сделать все это из Xorg. Или для получения дополнительной информации о создании и назначении специальных ключей.