我正在尝试获取macOS上正在运行的应用程序列表,以便在全屏应用程序上进行特定的窗口操作。
首先,我通过[NSWorkspace sharedWorkspace].runningApplications
获取所有正在运行的应用的列表,然后我使用辅助功能API来获取窗口:
AXUIElementCopyAttributeValues((__bridge AXUIElementRef) app,
(__bridge CFStringRef) kAXWindowsAttribute,
index,
count,
&values);
看起来这是要走的路,但对于拥有全屏窗口的应用,kAXWindowsAttribute
为空。对于非全屏幕窗口,它可以正常工作。
答案 0 :(得分:1)
Core Graphics Services API可以通过CGWindowListCopyWindowInfo()函数提供所有窗口的列表。