我正在运行Fedora linux,我正在尝试在浏览器中模拟击键(特别是箭头键)。在C
中执行此操作的最佳方法是什么?答案 0 :(得分:2)
你可以使用XTest扩展来做到这一点,一个简单的例子:
#include <X11/Xlib.h>
#include <X11/Intrinsic.h>
#include <X11/extensions/XTest.h>
#include <unistd.h>
static void SendKey (Display *disp, KeySym keysym)
{
KeyCode keycode = 0;
keycode = XKeysymToKeycode (disp, keysym);
if (keycode == 0) return;
XTestGrabControl (disp, True);
XTestFakeKeyEvent (disp, keycode, True, 0);
XTestFakeKeyEvent (disp, keycode, False, 0);
XSync (disp, False);
XTestGrabControl (disp, False);
}
/* Main Function */
int main ()
{
Display *disp = XOpenDisplay (NULL);
/* A, B */
SendKey (disp, XK_A);
SendKey (disp, XK_B);
return 0;
}
(改编自this link)