Tôi đang cố gắng sử dụng C và Xlib để gửi một sự kiện bấm phím giả vào cửa sổ với sự tập trung, đây là mã của tôi:gửi sự kiện bấm phím giả đến một cửa sổ sử dụng Xlib
#include <X11/Xlib.h>
#include <X11/keysymdef.h>
#define XK_A 0x041
int main()
{
Display *display = XOpenDisplay(NULL);
//find out window with current focus:
Window winfocus;
int revert;
XGetInputFocus(display, &winfocus, &revert);
//send key event to taht window
KeySym sym;
sym=XStringToKeysym("a");
//event definition
XKeyEvent event;
event.type=KeyPress;
event.keycode=XK_A;
event.display=display;
event.root=winfocus;
XSendEvent(display,winfocus,True,KeyPressMask,(XEvent *)&event);
return 0;
}
Tôi đang cố gắng để giữ mã đơn giản như có thể, tôi muốn gửi thư từ A đến cửa sổ hoạt động tôi nghĩ rằng tôi đang làm điều gì sai dù
nhờ
tôi đã thử các mã sau:
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xresource.h>
#include <X11/Intrinsic.h>
#include <X11/extensions/XTest.h>
#include <unistd.h>
int main()
{
Display *dis;
dis = XOpenDisplay(NULL);
KeyCode modcode = 0; //init value
modcode = XKeysymToKeycode(dis, XK_B);
XTestFakeKeyEvent(dis, modcode, True, 0);
XFlush(dis);
sleep(1);
XTestFakeKeyEvent(dis, modcode, False, 0);
XFlush(dis);
modcode = XKeysymToKeycode(dis, XK_A);
XTestFakeKeyEvent(dis, modcode, True, 0);
XFlush(dis);
return 0;
}
đó nhấn một phím liên tục, tôi không thể để phát hành nút rằng nếu tôi không sử dụng chức năng ngủ, tôi không thể gõ chữ trong một lần và sau đó nhả phím bấm