我在一个项目中需要编写一个简单的驱动程序,它接受来自 USB 设备的输入并根据接收到的消息在 GUI 上执行操作(就像编写一个 USB 鼠标驱动程序,但使用我自己的协议(protocol))。 我正在寻找这种可能性,我发现软件测试自动化工具,如 LDTP,已经可以生成鼠标点击和键盘点击等操作。 还有其他的 API 可以使用吗?如果我的团队对 C 语言有很好的理解并且没有使用 Linux 的经验,它会消耗多长时间?
最佳答案
我能想到的基本上有两种选择:
- X11:使用 XTest 扩展(
XTestFakeDeviceKeyEvent
、XTestFakeRelativeMotionEvent
等) - 模块uinput。
第一个利用大多数(所有?)X 服务器中存在的假 输入设备(尝试在 shell 中运行 xinput list
)。每次调用 XTestFake*
之一函数生成 X 输入消息。
第二个是内核模块,允许用户应用程序创建输入设备和发送输入事件。您只需打开 /dev/uinput
设备,送几ioctl
s 配置它,然后 write
直接输入事件。
当然,您可以编写输入内核驱动程序!
关于c - 在 linux 中生成鼠标、键...等事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733043/