python - 如何从 Python 脚本列出 Gnu/Linux 上所有打开的 (X11) 窗口?

标签 python user-interface x11 xlib

我希望能够从 Python 脚本中获取在 Linux 桌面上打开的所有窗口的列表。我想这需要通过 Xlib 或其他一些 x11 或 xdisplay 库工作。这将是 win32 的 EnumWindows 上的 Linux 等价物。 API 调用。

理想情况下,我希望能够使用它来获取每个打开窗口的标题/标题文本列表以及位置/大小信息。

是否有来自 Python 的函数调用会返回此信息?

最佳答案

安装 python-xlib :
pip3 install python-xlib
试试这个:

from Xlib import display

d = display.Display()
root = d.screen().root

query = root.query_tree()

for c in query.children:
    # returns window name or None
    name = c.get_wm_name()
    if name: 
        print(name)

我不确定其他属性。 query.childrenWindow 的列表对象,因此对这些对象的一些研究应该会有所发现。
Window对象 docs .

关于python - 如何从 Python 脚本列出 Gnu/Linux 上所有打开的 (X11) 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52545937/

相关文章:

c++ - Qt Creator 在创建新项目时没有 "Qt Gui Application"可供选择

r - 在 MAC 中使用 Microsoft R Open 3.3.1 时的警告消息

colors - 使用 C++ 更改 Xlib 窗口背景颜色

python - 在 mac 上覆盖 python 3.x 中的打印行

python - 如何在 python 中定义锯齿状数组

python - 在 Kivy 中构建一个简单的进度条或加载动画?

c++ - X损坏 : get event on window content changes

python - Django,如何从主静态文件夹中的模板扩展

python - 在已安装的 Python 包中导入

android - 用于创建 android UI 主题的工具