XLib, XTestFakeKeyEvent latences
XLib, XTestFakeKeyEvent latences
我尝试用XLib和XTestFakeKeyEvent向应用程序发送密钥,它运行良好,代码如下:
XSetInputFocus(disp, list[selectWindow],RevertToPointerRoot,CurrentTime);
for(i=0;i<hello.size();i++){
tamper[0] = hello[i];
KeySym key = XStringToKeysym(tamper);
XTestFakeKeyEvent(disp,XKeysymToKeycode(disp, key),True, CurrentTime );
XTestFakeKeyEvent(disp,XKeysymToKeycode(disp, key),False, CurrentTime );
}
其中Select list[selectWindow]是我发送数据的窗口,并篡改一个char[2](将函数的char[I]从hello[I]转换为char*)。这段代码将hello warable的内容写入选定的窗口,但,我尝试发送Return密钥,
XSetInputFocus(disp, list[selectWindow],RevertToPointerRoot,CurrentTime);
XTestFakeKeyEvent(disp,XKeysymToKeycode(disp, XK_Return),True, CurrentTime );
XTestFakeKeyEvent(disp,XKeysymToKeycode(disp, XK_Return),False, CurrentTime );
因此,我再次选择窗口,并将XK_Return密钥发送到应用程序,但它不起作用,我认为这是因为Xlib的"滞后",因为如果我在"for"循环的末尾放一个wait(2),它可以正常工作,但我不想每次发送消息都等待2秒钟。
我不知道该怎么解决。
谢谢。