如何拦截linux中最低级别的键盘输入?

时间:2015-06-21 15:41:44

标签: c++ c linux keyboard

我有兴趣为linux编写一个程序,它将读取所有键击,处理它,然后输出到其余正在运行的进程。基本上,所有键盘输入必须单独进入此程序和此程序...然后程序将充当计算机其余部分的键盘。我基本上想在Android设备上执行类似预测文本的操作,因此我的程序将充当过滤器。

我问的基本上是如何将所有键盘事件指向我的程序。虽然我不是在寻找代码,但我想知道我必须学习哪些Linux编程/ linux系统才能完成这项任务?这个,因为我这样做是为了更好地学习linux。

1 个答案:

答案 0 :(得分:1)

您不应该修改键盘驱动程序,因为这需要您为每个键盘制造商提供解决方案。(并且有很多这些...)

相反,您应该修改所有驱动程序调用的内核函数,然后再将输入传递到堆栈中。

首先,您可以修补input_event,它通常由所有输入驱动程序see documentation here 调用(不仅是键盘,还包括鼠标和其他设备)

在任何情况下,您都必须“解码”您可能会发现this文档有用的输入扫描代码。

有关内核修补的详细信息,请阅读herehere