linux - 从 linux 中的 wxwidget 应用程序向其他窗口发送键盘事件

标签 linux wxwidgets x11

我正在使用 C++ 和 wxWidgets 编写一个 linux 应用程序。
在我的应用程序中,我需要将键盘事件发送到当前具有焦点的窗口(不属于我的应用程序!)。

我的问题是:

  1. 如何找出焦点所在的窗口?
  2. 如何将键盘事件发送到不属于我的应用程序的窗口?

谢谢
丹妮尔

最佳答案

  1. XGetInputFocus(3)
  2. X11 不关心“应用程序”。只有 window 。有一个窗口 ID 就足够了(Window 是 Xlib 数据类型)。使用任何发送事件的方法。我知道有两种方法:XSendEvent(3)XTestFakeKeyEvent(3)。前一种方法不适用于某些选择忽略来自 XSendEvent 的事件的程序。后者需要 XTest 扩展,它存在于大多数(但不是所有)现代服务器中。
  3. 请注意 InputFocusXSendEvent 的有效窗口指示符,并且 XTestFakeKeyEvent 无论如何都会传送到具有焦点的窗口,因此您可能根本不需要调用 XGetInputFocus

关于linux - 从 linux 中的 wxwidget 应用程序向其他窗口发送键盘事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12312726/

相关文章:

linux - 如何为vagrant中尚不存在的用户挂载目录

linux - shell 脚本 : execute echo statements with a time delay

linux - 检索用于启动进程的命令 - shell 脚本

c++ - wxWidgets绘制顺时针椭圆弧

c++ - 如何知道 wxFrame 何时关闭?

创建没有警告的位图

linux - python 3.3 中的 BadIDChoice RENDER 和在 X 上显示的 tk/tcl

linux - 如何在 Linux 中更新 Android Studio

c++ - 跨平台浏览器检测

linux - Xorg下怎么输入greek alpha?