Получить список открытых окон какао - PullRequest
5 голосов
/ 25 января 2010

Я новичок в Какао, и я хочу знать, как я могу получить список всех открытых окон. Я не говорю о запуске программ, так как это было бы легкой задачей. Я хочу отобразить список окон, например, если у меня запущен предварительный просмотр с открытым 10 PDF, моя программа должна иметь возможность получить список со всеми этими PDF. Я также хочу знать, есть ли какой-нибудь API, доступный для взаимодействия с уже открытыми окнами (и, возможно, перемещения их или выполнения чего-либо еще) из внешнего приложения. Спасибо.

Ответы [ 4 ]

5 голосов
/ 25 января 2010

Во-первых, какао - это не аббревиатура, поэтому это не "Какао". : -)

Во-вторых, ваша единственная опция (публичный API) - это Accessibility API. Вам потребуется включить доступ для вспомогательных устройств на панели «Специальные возможности» в «Системных настройках».

Для начала ознакомьтесь с документацией: Обзор доступности

4 голосов
/ 29 мая 2013

Вы можете использовать CGWindowListCopyWindowInfo для получения списка окон в текущем сеансе пользователя.

Хотя это функция Carbon, но не Cocoa, но она отлично вызывается из приложения Cocoa и описана здесь: Справка по службам Quartz Window: CGWindowListCopyWindowInfo () .

3 голосов
/ 26 января 2010

У меня есть предварительный просмотр с открытым 10 PDF, моя программа должна иметь возможность получить список со всеми этими PDF.

Ну, это сложная часть. Вы можете получить окна через Accessibility, но Accessibility не связывает их с каким-либо объектом документа.

AppleScript будет работать для некоторых приложений, но Preview не является одним из них. Действительно, большинство приложений не так.

Таким образом, вы можете легко получить список окон , но получая значимую информацию о или изнутри , эти окна варьируются от хитрых до невозможных. Лучшим вариантом может быть сочетание специальных возможностей, AppleScript и отчетов об ошибках для приложений, не относящихся к сценариям, и знания о том, что ваше приложение не будет работать на всех.

1 голос
/ 12 ноября 2011

если вам нужен WIndow List или UI Specific для управления окном, если это особый пользовательский интерфейс, вы можете сослаться на Apple сын Grab пример,
Он отображает список Windows, работающий на рабочем столе, вероятно, вы можете урезать в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...