1

我正在尝试使用 X11 相关库(例如XlibXrandr.

起初我期待真正的基本功能的全面覆盖,例如Xlib单独从显示器中检索刷新率,后来我发现我需Xrandr要这样做。

现在我需要获取桌面中显示或隐藏的所有窗口的列表,我没有考虑使用 Gnome/KDE/XFCE ... 扩展,因为我知道这些只是 X11 的装饰器,但我不能真正找到能够枚举 X 服务器中打开的窗口的函数或宏。我还需要获取焦点窗口的 ID/名称。

我的问题是:Xlib独自一人有能力做到这一点?因为从 Xlib 采用的术语来看,我怀疑这个函数是否可能存在。

4

1 回答 1

2

您可以通过以下方式获取子窗口列表XQueryTree

XQueryTree - query window tree information

Status XQueryTree(Display *display, Window w, Window *root_return, Window *parent_return, Window **children_return, unsigned int *nchildren_return);

因此,要获得完整的列表,您必须从根窗口开始,并为每个窗口的所有子窗口递归调用它。

于 2013-07-09T07:07:57.037 回答