如何使用XCB将关键事件发送到应用程序?

ar3*_*r31 9 c c++ x11 xcb

如何使用其他程序将按键或按键释放事件发送到窗口(当前活动窗口)XCB

我找到了一些使用的教程XLib,但是我想使用它XCB.

我想我将不得不打电话xcb_send_event,但是我不知道将它作为参数传递给我.

jtu*_*ney 9

您应该能够使用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);
Run Code Online (Sandbox Code Playgroud)

有关工作示例,请参阅xcb/demos中的xte程序.

  • @Noitidart 我能够使用`-lxcb-xtest` 进行编译。(例如`gcc test.c -lxcb -lxcb-xtest -o test`)。我必须安装包`libxcb-xtest0-dev`。 (2认同)