c - 在 linux 中生成鼠标、键...等事件

标签 c linux events

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

最佳答案

我能想到的基本上有两种选择:

  • X11:使用 XTest 扩展(XTestFakeDeviceKeyEventXTestFakeRelativeMotionEvent 等)
  • 模块uinput。

第一个利用大多数(所有?)X 服务器中存在的 输入设备(尝试在 shell 中运行 xinput list)。每次调用 XTestFake* 之一函数生成 X 输入消息。

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

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

关于c - 在 linux 中生成鼠标、键...等事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733043/

相关文章:

c - `int` 数组中的无效输出

linux - 使用 grep 和 awk 将文件的第一列转换为 unixtime

c++ - SFML 鼠标点击检测

events - 在事件驱动架构中,命令是否应该以与事件相同的方式发布到主题?

javascript - AddEventListener 将事件参数传递给函数

c - 如何在C中将图像排序成行

c - 结构设置和初始化变量

c++ - 如何仅为特定程序启用无密码 ssh

php - (XAMPP) Linux :MySQL said: Documentation #1932 - Table 'phpmyadmin.pma__column_info' doesn't exist in engine

c - 多个 CreateFileA 调用返回相同的文件句柄