как получить USB HID ID нажатых клавиш клавиатуры

что я хочу сделать: Получить USB HID IDs когда я нажимаю ключи моего по-настоящему эргономичной клавиатура уметь перепрограммировать прошивку клавиатуры.

Я знаю, что это список от microsoft С большим количеством USB HID ID.

но было бы легче найти идентификатор ключа, просто набрав его и увидев, что он отображается в программе. Специально для некоторых ключей средств, которые Я не нахожу в этом списке от Microsoft.

существует ли такая программа? Может быть программа командной строки. Linux предпочтительнее, но Windows будет вариантом.

PS: Я видел, что этот вопрос на stackoverflow есть интересный ответ. Но я не могу найти /dev/usb/hiddev0 в моей системе (Fedora 17).

обновление

на этот вопрос ответ от @Andy Ross помог мне, по крайней мере, получить некоторый выход, при нажатии a ключевой. Я сделал

xxd -c 144 /dev/input/by-path/pci-0000:00:1a.0-usb-0:1.1:1.0-event-kbd

но это все еще не совсем читается. И не всегда то же самое, когда я нажимаю ту же клавишу.

Update2

на этот вопрос a скрипт python соединено, то читает прибор ввода и должно напечатать его. Но на этом компьютере на работе у меня нет прав доступа к устройству с этим скриптом python.

21
задан Community
23.01.2023 18:35 Количество просмотров материала 2472
Распечатать страницу

2 ответа

ответ:

su -c "while true; do od --read-bytes=144 --width=144 -x /dev/input/event3 | awk 'NF > 1 { print $12 }'; done"

Explanition

С помощью команды дерева я нашел это

$ tree /dev/input/by-path
/dev/input/by-path/
├── pci-0000:00:1a.0-usb-0:1.1:1.0-event-kbd -> ../event3
├── pci-0000:00:1a.0-usb-0:1.1:1.1-event -> ../event4
├── pci-0000:00:1d.2-usb-0:1:1.0-event-mouse -> ../event2
└── pci-0000:00:1d.2-usb-0:1:1.0-mouse -> ../mouse0

Ok, so /dev/input/event3 is клавиатуру.

od команда выводит файлы в восьмеричном и других форматах.

  • С -x опция сбрасывает шестнадцатеричный код.
  • и --width=144 опция выводит только одну строку на нажатие (одна строка 144 байта длинный.)
  • опции --read-bytes=144 quits od после 144 байт.

awk команда печатает 12-е поле из всей строки. Что только, если количество полей NF больше, чем 1, потому что каждая вторая строка-это просто разрыв строки.

while true цикл вокруг всего этого, потому что, если я набираю несколько буквенных клавиш, он ломается. Я больше не получаю результатов, только 0000. Но od команда завершает чтение после 144 байт (одно нажатие клавиши). После этого он перезапускается. Есть, конечно, лучше исправить, но это хорошее решение.

пример вывода (я нажал несколько раз Return,RightCtrl и Backspace, что дает мне правильные цифры при сравнении с этим документ от microsoft (PDF) или этот текстовый файл document)

0028
0028
0028
00e4
00e4
00e4
002a
002a
002a
3
отвечен erik 2023-01-25 02:23

xev в Linux, поможет вам.

Удачи.

0
отвечен loadaverage 2023-01-25 04:40

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх