如何在 C 中获取设备(比如鼠标?)以便只有给定的进程才能使用它?
例如,它将允许鼠标仅在当前进程上使用。
我正在创建一个虚拟设备,我在“/dev/uinput”上写入以发送鼠标移动。如何将此虚拟鼠标限制为仅一个进程。
最佳答案
是evtest
或 evemu
不足以满足您的测试需求?它们位于大多数 Linux 发行版的标准存储库中,当然足以进行临时测试。
我已经发布了一些示例代码 here作为对 how to read barcodes from a specific input event device in Linux 的回答.它有超时支持,并抓取输入设备(在输入事件设备文件描述符上使用 ioctl(fd, EVIOCGRAB, 1)
),这样事件就不会被传播和其他试图抓取的进程设备因 EBUSY
而失败。
以您觉得舒服的方式修改它以检查您的设备提供的事件结构应该不会太困难。
关于c - 在 C 中抓取一个设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33302765/