Как получить список всех открытых NSWindow из всех запущенных приложений? - PullRequest
11 голосов
/ 27 октября 2010

Есть ли способ получить список открытых или видимых NSWindow с рабочего стола Mac?

Ответы [ 3 ]

23 голосов
/ 27 октября 2010

Обратите внимание, что не все окна обязательно NSWindows, а NSWindow предоставляет интерфейс только для окон в вашем собственном адресном пространстве.

Поддерживаемый способ доступа к каждому окну - CGWindow API. Взгляните на пример кода Son of Grab , чтобы увидеть, как это делается.

5 голосов
/ 27 октября 2010

Вы можете использовать API специальных возможностей (чтобы он работал, доступность должна быть включена в Системных настройках), чтобы получать информацию об окнах (и других элементах пользовательского интерфейса) из других процессов. Этот вопрос может быть именно то, что вы ищете.

1 голос
/ 27 октября 2010

ВСЕ запущенные приложения?Нет. Вы можете получить только NSWindows своего собственного приложения.Вы можете использовать API-интерфейсы Universal Access или Core Graphics для получения некоторой информации об окнах других приложений, но не о полном доступе.

...