首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux:取消/dev/dev/event*的输入

Linux:取消/dev/dev/event*的输入
EN

Stack Overflow用户
提问于 2021-08-09 14:01:23
回答 1查看 473关注 0票数 0

在我一直在开发的程序中,我想独立于我所关注的任何窗口来阅读键盘笔画(所以,无论我是专注于Firefox还是玩“我的世界”,都可以使用相同的程序,而不必改变焦点)。到目前为止,使用linux/input.h库和从/dev/dev/event5 5读取似乎工作得很好。

代码语言:javascript
复制
fd = open(argv[1], O_RDONLY);
struct input_event ev;
int len = read(fd, &ev, sizeof(struct input_event));

但是,我想添加的一个功能是在程序运行时取消这个输入,这样可以防止我的按键到达Firefox、Min克拉夫特或一般操作系统。有什么好办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 19:29:07

警告:未经测试的

  • 用O_RDWR模式打开字符设备(读/写)
  • 抓取设备: ioctl(fd,EVIOCGRAB,1)
  • 读取事件
  • 如果您想分派事件:
    • 解抓取装置ioctl(fd,EVIOCGRAB,0)
    • 写事件

在取消抓取和写入之间,可能会发生其他事件,这些事件不会被过滤并发送到所有连接的文件句柄。我不知道是否可以先写,然后取消抓取(甚至可以写,检查write的返回值)。

提示:您也可以修改利别夫德

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68713392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档