在linux中生成鼠标,键......等事件

Ahm*_*med 3 c linux events

我在一个项目中,我需要编写一个简单的驱动程序,接受来自USB设备的输入,并根据收到的消息在GUI上执行操作(就像编写usb鼠标驱动程序,但使用我自己的协议).我正在寻找这种可能性,我发现软件测试自动化工具,如LDTP,已经可以生成鼠标点击和键盘命中等操作.是否有其他API可供使用?考虑到我的团队对C语言有很好的理解而没有Linux经验,它会消耗多长时间?

rod*_*igo 5

您基本上有两种选择,我可以想到:

  • X11:使用XTEST扩展(XTestFakeDeviceKeyEvent,XTestFakeRelativeMotionEvent,等)
  • 模块输入.

第一个使用大多数(所有?)X服务器中存在的虚假输入设备(尝试xinput list在shell中运行).每次调用其中一个XTestFake*函数都会生成一条X输入消息.

第二个是内核模块,它允许用户应用程序创建输入设备并发送输入事件.您只需打开/dev/uinput设备,发送几个ioctl以配置它,然后write直接输入事件.

当然,您可以编写输入内核驱动程序!