在C中在浏览器中生成按键

时间:2012-01-02 04:07:29

标签: c linux browser

我正在运行Fedora linux,我正在尝试在浏览器中模拟击键(特别是箭头键)。在C

中执行此操作的最佳方法是什么?

1 个答案:

答案 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