我正处于一个项目中,我需要编写一个简单的驱动程序,接受来自USB设备的输入,并根据收到的消息在GUI上执行操作(就像编写usb鼠标驱动程序,但使用我自己的协议)。 我正在寻找这种可能性,我发现软件测试自动化工具,如LDTP,已经可以生成鼠标点击和键盘命中等操作。 是否有其他API可供使用?考虑到我的团队对C语言有很好的理解并且没有使用Linux的经验,它会消耗多长时间?
答案 0 :(得分:5)
你基本上有两种选择,我能想到:
XTestFakeDeviceKeyEvent
,XTestFakeRelativeMotionEvent
等)。第一个使用伪输入设备(尝试在shell中运行xinput list
),这些设备存在于大多数(所有?)X服务器中。每次调用XTestFake*
函数之一都会生成一条X输入消息。
第二个是内核模块,它允许用户应用程序创建输入设备并发送输入事件。您只需打开/dev/uinput
设备,发送一些ioctl
进行配置,然后直接write
输入事件。
当然,您可以编写输入内核驱动程序!
答案 1 :(得分:2)
当我需要在Windows上做同样的事情时,我查看了VNC Server的思想源代码,并找到了我需要知道的一切。 Linux版本应该具有您所需要的功能,或者至少指向正确的方向。在Linux上有两种VNC服务器,一种是在虚拟显示器上工作,另一种是在真实显示器上工作。您想要查看适用于真实显示的内容,例如this one。