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

有什么方法可以使用C在Linux中模拟按键吗?

在我的特定情况下,我使用的是Ubuntu

9.04,需要一个简单的应用程序,该应用程序在启动时会调用“暂停”按钮。那将使Firefox中的iframe使用Javascript刷新。

回答:

我认为您的意思是“

X11应用程序”-从您的描述中还不能完全清楚您打算做什么。下面的代码片段将使用XTest扩展名将“暂停”键代码发送到当前在X11下具有键盘输入焦点的应用程序-

从我读到的内容来看,这是“伪造”键盘事件的最兼容方法。查看是否可以将其应用于您的方案(为了使操作更简单,请检查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, keycode, False, 0);

XFlush(display);

您将需要与-lX11 -lXtst链接。

显然,那个时候Firefox需要重点关注。

但是,我很想知道您要完成的任务是什么-我怀疑应该有比欺骗按键事件更优雅的解决方案。

以上是 在Linux C控制台应用程序中模拟按键 的全部内容, 来源链接: utcz.com/qa/411379.html

回到顶部