LaunchAgent - есть что-то вроде RunAtScreenSaver?

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

Есть ли возможность это сделать?

Заранее спасибо!

Джош


person Community    schedule 18.09.2009    source источник


Ответы (4)


Создайте еще один процесс, который работает в фоновом режиме и прослушивает распределенные уведомления с именами com.apple.screenIsLocked и com.apple.screenIsUnlocked. (Это для Snow Leopard. Leopard использовал разные имена уведомлений. Используйте Notification Watcher и поэкспериментируйте, чтобы выяснить, что они есть.) Когда приходит одно из этих уведомлений, запустите или красиво закройте* свое реальное приложение, в зависимости от ситуации.

* Для этого вам нужно использовать Apple Event.

person Peter Hosey    schedule 18.09.2009
comment
Эти уведомления больше не доступны в Snow Leopard. Смотрите мой ответ ниже. - person boxed; 05.06.2012

Для Snow Leopard уведомления screenIsLocked и screenIsUnlocked больше не доступны. То, что я успешно использовал, это:

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(locked:) name:NSWorkspaceScreensDidSleepNotification object:nil];

[[[NSWorkspace sharedWorkspace] notificationCenter] addObserver:self selector:@selector(unlocked:) name:NSWorkspaceScreensDidWakeNotification object:nil];
person boxed    schedule 05.06.2012
comment
Они отправляются через заставку или только отображают аппаратный сон? - person Peter Hosey; 05.06.2012
comment
Честно говоря, я никогда не пользуюсь скринсейверами. Откровенно говоря, я не понимаю, зачем это кому-то еще, ведь мы перестали использовать ЭЛТ! Любая заставка, которая не на 100% белая, может только повредить экран или ничего не сделать. Так что я не знаю и не забочусь о своем варианте использования :) - person boxed; 16.01.2013

Я новый пользователь, поэтому я не могу комментировать или голосовать за предложение Портенкирхнера. Мэтт Суонн переместил свой ScriptSaver.

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

person Trey Blancher    schedule 28.02.2015

Вы можете использовать ScriptSaver от Matt Swann. Это заставка для Mac OS X, которая может запускать сценарии AppleScript при активации и деактивации.

http://swannman.wordpress.com/projects/scriptsaver/

person portenkirchner    schedule 31.07.2010