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

从Python脚本获取macOS上所有窗口标题的列表

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

    我希望能够从Python脚本中获得macOS上所有窗口标题的字符串列表。在Windows上,有一个win32 api(enumWindows()函数)可以做到这一点;我想要和macOS一样的。

    这可能吗?我想我需要使用pyobjc。

    1 回复  |  直到 6 年前
        1
  •  2
  •   Ronald Oussoren    5 年前

    以下脚本基于Mark Setchell的注释,并打印应用程序名和窗口名(使用Python 3.7):

    import Quartz
    
    windows = Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopElements|Quartz.kCGWindowListOptionOnScreenOnly,Quartz.kCGNullWindowID);
    
    for window in windows:
        print(f"{window[Quartz.kCGWindowOwnerName]}: {window.get(Quartz.kCGWindowName, '<no name>')}")
    

    请注意,windows可能没有名称,因此使用“get”方法访问窗口名称。