Как отправить ключевое событие в приложение с помощью XCB? - PullRequest
9 голосов
/ 09 января 2012

Как отправить событие нажатия клавиши или отпускания клавиши в окно (текущее активное окно) из другой программы, используя XCB?

Я нашел несколько руководств, использующих XLib, однако я бы хотел использовать XCB.

Полагаю, мне придется позвонить xcb_send_event, однако я понятия не имею, что передать в качестве параметров.

1 Ответ

9 голосов
/ 19 февраля 2013

Вы должны иметь возможность использовать расширение XTEST для фальсификации ввода в активное окно, используя функцию xcb_test_fake_input ().

#include <xcb/xtest.h>
...
xcb_test_fake_input(c, XCB_KEY_PRESS, keycode, XCB_CURRENT_TIME, XCB_NONE, 0, 0, 0);
xcb_test_fake_input(c, XCB_KEY_RELEASE, keycode, XCB_CURRENT_TIME, XCB_NONE, 0, 0, 0);

См. Программу xte в xcb / demos для рабочего примера.

...