当前位置: 技术问答>linux和unix
如何读取 /dev/input 下的键盘鼠标事件
来源: 互联网 发布时间:2017-02-10
本文导语: 问题1: 我的 设备在 /dev/eventX 而不是 /dev/input/eventX, 用的mdev, 如何修改 mdev.conf呢 问题2: 我的USB鼠标会显示1个 event, 而USB键盘会显示2个, 为什么呢 问题3: 这个event跟插入顺序有关, 如先插入 鼠标, 鼠标就是ev...
问题1:
我的 设备在 /dev/eventX 而不是 /dev/input/eventX, 用的mdev, 如何修改 mdev.conf呢
问题2:
我的USB鼠标会显示1个 event, 而USB键盘会显示2个, 为什么呢
问题3:
这个event跟插入顺序有关, 如先插入 鼠标, 鼠标就是event0, 先插入键盘, 键盘就是event0, 编程时怎么判断呢
我的 设备在 /dev/eventX 而不是 /dev/input/eventX, 用的mdev, 如何修改 mdev.conf呢
问题2:
我的USB鼠标会显示1个 event, 而USB键盘会显示2个, 为什么呢
问题3:
这个event跟插入顺序有关, 如先插入 鼠标, 鼠标就是event0, 先插入键盘, 键盘就是event0, 编程时怎么判断呢
|
cat /proc/bus/input/devices 可以打印各个设备节点的信息,借此可以判断设备的类型
|
第二个问题:如果是键盘,应该显示一个对应的mouse和一个event才对啊。说详细点你的问题吧!
|
这个不用判断,你直接从那几个描述符读就可以了,根据读出来的内容区分键盘鼠标就可以了
|
[root@localhost device]# cat /sys/class/input/event1/device/name
Macintosh mouse button emulation
[root@localhost device]# cat /sys/class/input/event2/device/name
AT Translated Set 2 keyboard
[root@localhost device]# cat /sys/class/input/event3/device/name
ImPS/2 Generic Wheel Mouse
读出名字进行比较。因为这些名字都是固定的
Macintosh mouse button emulation
[root@localhost device]# cat /sys/class/input/event2/device/name
AT Translated Set 2 keyboard
[root@localhost device]# cat /sys/class/input/event3/device/name
ImPS/2 Generic Wheel Mouse
读出名字进行比较。因为这些名字都是固定的
|
读取/dev/input/mice可以得到所有鼠标的信息,只要有鼠标读它就行,因为所有的鼠标的消息都会发给它一份,而且mice是全局唯一且固定的。
至于键盘,顺序读取各个eventX,看看消息类型是不是按键时间就行了。是按键事件的就对应键盘。
这样你觉得怎么样?
至于键盘,顺序读取各个eventX,看看消息类型是不是按键时间就行了。是按键事件的就对应键盘。
这样你觉得怎么样?