一尘不染

Linux键盘事件捕获/ dev / inputX

linux

我试图捕获键盘事件。例如,我想从头开始挖掘键盘记录程序。经过2小时的战斗,我发现了以下内容

neel@pc1$ ls -l /dev/input/by-id
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd -> ../event1
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-mouse -> ../event2
lrwxrwxrwx 1 root root 9 2010-05-05 21:33 usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-mouse -> ../mouse1

但是当我试图

neel@pc1$ sudo cat /dev/input/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd

它什么也没有产生

经过更多搜索之后,现在我正在考虑Xorg中的某些内容可能会阻止它。

那么还有更多信息吗?在说的最后,我如何从该文件读取输入?还是有其他捕获键盘事件的方式?


阅读 214

收藏
2020-06-03

共1个答案

一尘不染

谢谢您提供的线索对ls -l /dev/input/by-id我帮助很大!

defenderdz@defenderdz-pc:~$ ls -l /dev/input/by-id | grep kbd
lrwxrwxrwx 1 root root  9 nov.  28 14:04 usb-Logitech_USB_Receiver-event-kbd -> ../event7
lrwxrwxrwx 1 root root 10 nov.  29 00:33 usb-NOVATEK_USB_Keyboard-event-kbd -> ../event26
lrwxrwxrwx 1 root root  9 nov.  28 14:04 usb-SONiX_USB_DEVICE-event-kbd -> ../event3
defenderdz@defenderdz-pc:~$

“ kbd”是用于键盘设备的后缀(我连接了3个键盘)。

您的错误是您正在访问 错误的文件夹

/dev/input/ 代替 /dev/input/by-id

在我的示例中,正确的路径是:

defenderdz@defenderdz-pc:~$ sudo cat /dev/input/by-id/usb-NOVATEK_USB_Keyboard-event-kbd
���]�I���]�I���]�Ia���]�b���]�b���]�b���]�����]�����]��s���]����]����]����]�>
���]�>
 ���]�>
d���]�8
       ���]�8
              ���]�8
                    ���]�����]�����]��s���]H|���]H|���]H|���]�����]�� ���]��d���]Ǵ���]Ǵ ���]Ǵ

就你而言

neel@pc1$ sudo cat /dev/input/by-id/usb-Plus_More_Enterprise_LTD._USB-compliant_keyboard-event-kbd

我并不是说这是最好的解决方案,但对我来说效果很好。您甚至可以通过解析ls结果来创建键盘的自动检测…

2020-06-03