Поиск изменений ActiveApplication в OSX через Python - PullRequest
0 голосов
/ 27 декабря 2008

Есть ли способ узнать, когда activeApplication изменяется в OSX через Python и AppKit? Я знаю, как узнать запущенное приложение и активное приложение (см. Другой мой вопрос здесь: Поиск текущего активного окна в Mac OS X с использованием Python )

Ответы [ 2 ]

1 голос
/ 27 декабря 2008

У меня есть приложение для OS X , которое делает это путем опроса NSTimer . Я попытался найти распределенные уведомления, чтобы посмотреть, смогу ли я найти лучший способ сделать это, но я не увидел ничего ужасно полезного.

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

Это приложение было очень полезным для меня, и даже опрос один раз в секунду почти не использует процессор. Если бы я мог сделать его более управляемым событиями, я бы сделал это. :)

0 голосов
/ 27 декабря 2008

Мне не известен «официальный» / хороший способ сделать это, но один хакерский способ сделать это - прослушать любые распределенные уведомления и посмотреть, какие из них всегда запускаются при изменении самого переднего приложения, так что вы может слушать это:

Вы можете установить что-то вроде этого:

def awakeFromNib(self):
    NSDistributedNotificationCenter.defaultCenter().addObserver_selector_name_object_(
        self, 'someNotification:', None, None)

def someNotification_(self, notification):
    NSLog(notification.name())

После того, как вы обнаружили уведомление, которое всегда срабатывает при переключении приложений, вы можете заменить первый «None» в вызове addObserver_etc_ на имя этого уведомления и проверить самое переднее приложение в вашем методе «someNotification_».

В моем случае я заметил, что «AppleSelectedInputSourcesChangedNotification» срабатывает каждый раз, когда я переключаю приложения, поэтому я слушал это ..

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

Должен быть лучший способ, хотя .. надеюсь:)

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