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

从Python脚本获取macOS上所有窗口标题的列表,python,macos,pyobjc,Python,Macos,Pyobjc,我希望能够从Python脚本中获得macOS上所有窗口标题的字符串列表。在Windows上,有一个win32 api(enumWindows()函数)可以做到这一点;我想要和macOS一样的 这可能吗?我假设我需要使用pyobjc。以下脚本基于Mark Setchell的注释,并打印应用程序名和窗口名(使用Python 3.7): 导入石英 windows=Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopEl

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


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

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

导入石英
windows=Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopElements | Quartz.kcgwindowlistoptiononsScreenOnly,Quartz.kCGNullWindowID);
对于windows中的窗口:
打印(f“{window[Quartz.kcgwindownername]}:{window.get(Quartz.kCGWindowName,”)}”)

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

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

导入石英
windows=Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopElements | Quartz.kcgwindowlistoptiononsScreenOnly,Quartz.kCGNullWindowID);
对于windows中的窗口:
打印(f“{window[Quartz.kcgwindownername]}:{window.get(Quartz.kCGWindowName,”)}”)
请注意,windows可能没有名称,因此使用“get”方法访问窗口名称。

这可能有点帮助这可能有点帮助
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>')}")