【问题标题】:How can I list all open (X11) windows on Gnu/Linux from a Python script?如何从 Python 脚本列出 Gnu/Linux 上所有打开的 (X11) 窗口?
【发布时间】:2019-03-03 21:31:27
【问题描述】:

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

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

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

【问题讨论】:

标签: python user-interface x11 xlib


【解决方案1】:

安装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

【讨论】:

  • 为什么有些窗口不见了?
猜你喜欢
  • 1970-01-01
  • 2010-11-03
  • 2021-08-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多