Как получить уведомление об открытии нового окна? - PullRequest
3 голосов
/ 21 февраля 2010

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

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

1 Ответ

1 голос
/ 21 февраля 2010

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

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

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