加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

在Linux C控制台应用程序中模拟按键

发布时间:2020-12-13 16:56:53 所属栏目:Linux 来源:网络整理
导读:有没有办法用C模拟 Linux中的按键? 在我的特定情况下,我使用的是Ubuntu 9.04并且需要一个简单的应用程序,在启动时调用“暂停”按钮.这将在Firefox中使用Javascript刷新iframe. 解决方法 我认为你的意思是“X11应用程序” – 从你的描述中你并不完全清楚你打
有没有办法用C模拟 Linux中的按键?

在我的特定情况下,我使用的是Ubuntu 9.04并且需要一个简单的应用程序,在启动时调用“暂停”按钮.这将在Firefox中使用Javascript刷新iframe.

解决方法

我认为你的意思是“X11应用程序” – 从你的描述中你并不完全清楚你打算做什么.下面的代码片段将“暂停”键代码发送到当前在X11下使用XTest扩展键盘输入焦点的应用程序 – 从我所读到的这是“伪造”键盘事件的最兼容的方式.看看你是否可以将它应用到您的场景中(没有错误检查XOpenDisplay是否成功,以使其更简单).
#include <X11/Xlib.h>
#include <X11/keysym.h>
#include <X11/extensions/XTest.h>
...
Display *display;
unsigned int keycode;
display = XOpenDisplay(NULL);
...
keycode = XKeysymToKeycode(display,XK_Pause);
XTestFakeKeyEvent(display,keycode,True,0);
XTestFakeKeyEvent(display,False,0);
XFlush(display);

您需要链接-lX11 -lXtst.

显然火狐需要在那个时候关注.

但是,我很想知道你要完成的更大任务是什么 – 我怀疑应该有一个比欺骗按键事件更优雅的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读