Список окон упорядочен по недавно использованным - PullRequest
2 голосов
/ 16 июля 2010

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

Ответы [ 2 ]

0 голосов
/ 24 февраля 2011

Начните с Каркас доступности . Многие из крючков для чтения с экрана также полезны здесь. В частности, посмотрите на образец UIElementInspector и протокол NSAccessiblity .

Также есть Службы Quartz Window , которые могут легко дать вам список всех окон на экране. К сожалению, он не связан с такими понятиями, как фокусировка окна (только уровень), и я не знаю способа получить от него уведомления при изменении уровня. Вы можете сделать что-то вроде подключения к платформе Quartz Event, чтобы захватить Cmd-Tab и тому подобное, но это сложно и хрупко. К сожалению, нет хорошего способа преобразовать CGWindowID в AXUIElementRef (пост для 10.5, но я не знаю ничего, что было добавлено в 10.6 для улучшения этого). Но, надеюсь, вы сможете делать все, что вам нужно, через инфраструктуру специальных возможностей.

0 голосов
/ 24 февраля 2011

Вы хотели бы использовать

[NSWorkspace runningApplications]

, чтобы получить список всех запущенных приложений, и смотреть

[NSRunningApplication currentApplication]

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

...