有没有办法用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 需要获得焦点。
但是,我很想知道您想要完成的更大任务是什么 - 我怀疑应该有一个比欺骗按键事件更优雅的解决方案。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)