代码之家  ›  专栏  ›  技术社区  ›  Al Sweigart mayur

如何从Python脚本中列出Linux上所有打开的窗口?

  •  2
  • Al Sweigart mayur  · 技术社区  · 6 年前

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

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

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

    1 回复  |  直到 5 年前
        1
  •  0
  •   Ozzy Walsh    6 年前

    安装 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.children 是一个列表 Window

    窗口 对象 docs