Не существует стандартного способа указать зависимое приложение. Значит, нужно как-то следить за системой. Вам не нужно активно проводить опрос; вам нужно использовать какой-то системный механизм, чтобы сказать вам.
Чтобы следить за запуском приложения с графическим интерфейсом, вам нужно написать фоновое приложение, получить центр уведомлений NSWorkspace с помощью
NSNotificationCenter* nc=[[NSWorkspace sharedWorkspace] notificationCenter];
и следите за NSWorkspaceDidLaunchApplicationNotification. См. Apple doc
.
Чтобы следить за запуском приложения без графического интерфейса, вам нужно использовать kqueue
. (Это функция BSD.) См. справочная страница. Обычно вам нужно наблюдать за процессами с launchd
по fork
или execve
. Обратите внимание, что существует несколько процессов launchd
, один для root и один для каждого вошедшего в систему пользователя.
В любом случае вам нужно автоматически запускать фоновое приложение, которое вы пишете. Есть много способов сделать это.
Чтобы просмотреть файл или каталог для изменения, вы можете использовать launchd
агентов. См. справочную страницу а>.
Кстати: официальное приложение Last.fm
при первом запуске устанавливает AudioScrobbler.bundle
внутри ~/Library/iTunes/iTunes Plug-ins
. iTunes считывает все подключаемые модули при запуске, а затем подключаемый модуль запускает приложение Last.fm. Это довольно хакерское, неприкрытое использование интерфейса, потому что плагин предназначен для визуализатора. См. документ Apple.
person
Yuji
schedule
11.05.2010