Как получить список всех открытых NSWindow из всех запущенных приложений?
Есть ли способ получить список открытых или видимых NSWindow с рабочего стола Mac?
Ответы
Ответ 1
Обратите внимание, что не все окна обязательно NSWindows
, а NSWindow
предоставляет интерфейс только для окон в вашем собственном адресном пространстве.
Поддерживаемый способ доступа ко всем окнам - это API CGWindow
. Взгляните на пример кода Сон Grab, чтобы увидеть, как это делается.
Ответ 2
Вы можете использовать API доступности (доступность должна быть включена в Системных настройках для его работы) для получения информации о окнах (и других элементах пользовательского интерфейса) из других процессов. Этот вопрос может быть именно тем, что вы ищете.
Ответ 3
ВСЕ запущенные приложения? Нет. Вы можете получить только NSWindows своего приложения. Вы можете использовать Universal Access или Core Graphics API, чтобы получить некоторую информацию о окнах других приложений, но не полный доступ.