Можно ли получить полный список окон запущенных приложений?

Я пытаюсь получить список запущенных приложений в macOS, чтобы сделать некоторые манипуляции с окнами в полноэкранных приложениях, чтобы быть точным.

Сначала я получаю список всех запущенных приложений через [NSWorkspace sharedWorkspace].runningApplications тогда я использую Accessibility API, чтобы получить окна:

AXUIElementCopyAttributeValues((__bridge AXUIElementRef) app,
                               (__bridge CFStringRef) kAXWindowsAttribute,
                               index,
                               count,
                               &values);

Похоже, что это путь, но для приложений с полноэкранными окнами kAXWindowsAttribute пустой. Для не полноэкранных окон это работает просто отлично.

1 ответ

API-интерфейс Core Graphics Services может предоставить список всех окон с помощью функции CGWindowListCopyWindowInfo().

Другие вопросы по тегам