Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C语言在浏览器中生成按键_C_Linux_Browser - Fatal编程技术网

用C语言在浏览器中生成按键

用C语言在浏览器中生成按键,c,linux,browser,C,Linux,Browser,我正在运行FedoraLinux,我正在尝试在浏览器中模拟按键(特别是箭头键)。在C中执行此操作的最佳方法是什么?您可以使用XTest extesion执行此操作,这是一个简单的示例: #include <X11/Xlib.h> #include <X11/Intrinsic.h> #include <X11/extensions/XTest.h> #include <unistd.h> static void SendKey (Display

我正在运行FedoraLinux,我正在尝试在浏览器中模拟按键(特别是箭头键)。在C中执行此操作的最佳方法是什么?您可以使用XTest extesion执行此操作,这是一个简单的示例:

#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;
}
#包括
#包括
#包括
#包括
静态无效SendKey(显示*disp,KeySym KeySym)
{
KeyCode KeyCode=0;
keycode=XKeysymToKeycode(disp,keysym);
如果(keycode==0)返回;
XTestGrabControl(disp,True);
XTestFakeKeyEvent(disp,keycode,True,0);
XTestFakeKeyEvent(disp,keycode,False,0);
XSync(disp,False);
XTestGrabControl(disp,False);
}
/*主要功能*/
int main()
{
Display*disp=XOpenDisplay(空);
/*A,B*/
SendKey(disp,XK_A);
SendKey(disp,XK_B);
返回0;
}

(改编自)

您可以使用XTest执行此操作-请参阅