Задержки XLib, XTestFakeKeyEvent

Я пытаюсь отправить ключ в приложение с помощью 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, потому что, если я помещаю wait (2) в конец цикла for, он работает нормально, но я не хочу ждать в течение 2 секунд каждый раз, когда я Отправить сообщение.

Я не знаю, как я могу это решить.

Спасибо.

6
задан ex0ns 23 February 2012 в 10:01
поделиться