2010-02-21 1 views
3

Я хочу ответить на определенный тип нового окна, открываемого внешним приложением. У меня есть некоторый опыт поиска приложений и окон, которые в настоящее время открыты (в системе) с использованием некоторых функций углерода, поэтому теоретически можно просто проверять каждые несколько секунд. Для этого потребуется получить список всех открытых окон и проверить его на некоторый список, который мне нужно будет поддерживать, и он чувствует себя очень неуклюжим.Как получить уведомление об открытии нового окна?

Как я могу получить простое, чистое уведомление при запуске нового окна? Должен ли я использовать API доступности? Если да, то что конкретно я ищу?

ответ

1

Сначала создайте AXObserver. Затем следите за запусками любых приложений, которые, по вашему мнению, вас интересуют. Когда произойдет такой запуск, создайте приложение AXUIElement для этого процесса и добавьте к нему своего наблюдателя для уведомления kAXWindowCreatedNotification.

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

+0

Спасибо - AXObserver - именно то, что мне нужно. Я знаю, это звучит как особый способ сделать что-то, но я серьезно сомневаюсь, что есть альтернатива для моего конкретного приложения. –