我在写C一个Linux程序,我需要截取某些键盘敲击。
使用输入subsytem(读/写的/ dev /输入/ eventX),可以接收,一个键盘行程(使用“读取”功能)或模拟键盘行程(使用“写”功能)。
当使用“读”功能,我可以捕获用户键盘敲击,但这一事件被传播,我不知道如何使用它。
我在写C一个Linux程序,我需要截取某些键盘敲击。
使用输入subsytem(读/写的/ dev /输入/ eventX),可以接收,一个键盘行程(使用“读取”功能)或模拟键盘行程(使用“写”功能)。
当使用“读”功能,我可以捕获用户键盘敲击,但这一事件被传播,我不知道如何使用它。
默认情况下,输入事件被发送给所有的监听应用程序和驱动程序。 这是可能的,但是,有一个应用抓住通过所述装置evdev
接口-看看在EVIOCGRAB
ioctl()
这将只允许特定的应用程序从该特定设备接收事件。
这种做法的问题是,你不能真正阻止一个特定事件自收到后 ,被传播-你只能提前抢设备,然后将捕获的所有事件。 所以,如果你想过滤输入事件,你必须使用一种解决方法。
我在我自己使用的解决方法evmapd
守护参与抢夺原器件并使用uinput
子系统提供另一个设备与所有我需要的,包括重新映射按键和其它各种变化的修改...