Можно ли получить полный список окон запущенных приложений?
Я пытаюсь получить список запущенных приложений в macOS, чтобы сделать некоторые манипуляции с окнами в полноэкранных приложениях, чтобы быть точным.
Сначала я получаю список всех запущенных приложений через [NSWorkspace sharedWorkspace].runningApplications
тогда я использую Accessibility API, чтобы получить окна:
AXUIElementCopyAttributeValues((__bridge AXUIElementRef) app,
(__bridge CFStringRef) kAXWindowsAttribute,
index,
count,
&values);
Похоже, что это путь, но для приложений с полноэкранными окнами kAXWindowsAttribute
пустой. Для не полноэкранных окон это работает просто отлично.
1 ответ
API-интерфейс Core Graphics Services может предоставить список всех окон с помощью функции CGWindowListCopyWindowInfo().