Я пытаюсь отправить ключ в приложение с помощью 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 );
}
Где список выбора [selectWindow] - это окно, куда я отправляю данные, иподменять char [2] (для преобразования char из hello [i] в char * для функции. Этот код записывает содержимое hello wariable в выбранное окно, но, я пытался отправить ключ 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, потому что если я поставлю ожидание (2) в конце цикла 'for' он работает нормально, но я не хочу ждать в течение 2 секунд каждый раз, когда отправляю сообщение.
Я не знаю, как мне это сделать, чтобы решить эту проблему.
Спасибо.