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

时间:2018-11-10 08:29:03

标签: python macos pyobjc

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

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

1 个答案:

答案 0 :(得分:2)

以下脚本基于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>')}")

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