如何使用输入子系统在Linux上comsume键盘事件(How to comsume a keybo

2019-07-31 07:18发布

我在写C一个Linux程序,我需要截取某些键盘敲击。

使用输入subsytem(读/写的/ dev /输入/ eventX),可以接收,一个键盘行程(使用“读取”功能)或模拟键盘行程(使用“写”功能)。

当使用“读”功能,我可以捕获用户键盘敲击,但这一事件被传播,我不知道如何使用它。

Answer 1:

默认情况下,输入事件被发送给所有的监听应用程序和驱动程序。 这是可能的,但是,有一个应用抓住通过所述装置evdev接口-看看在EVIOCGRAB ioctl() 这将只允许特定的应用程序从该特定设备接收事件。

这种做法的问题是,你不能真正阻止一个特定事件自收到 ,被传播-你只能提前抢设备,然后将捕获的所有事件。 所以,如果你想过滤输入事件,你必须使用一种解决方法。

我在我自己使用的解决方法evmapd守护参与抢夺原器件并使用uinput子系统提供另一个设备与所有我需要的,包括重新映射按键和其它各种变化的修改...



文章来源: How to comsume a keyboard event on Linux using input subsystem