Запускать окно входа в систему, чтобы перезагрузить AskForPassword при пробуждении из спящего режима - PullRequest
2 голосов
/ 16 августа 2011

В OS X есть предпочтение запрашивать пароль при пробуждении из режима сна или хранителя экрана, хранящегося в домене настроек com.apple.screensaver , ключ askForPassword . Я бы хотел изменить это предпочтение у демона, работающего от имени пользователя root, но я не уверен, что это правильно.

Одним из вариантов является чтение, обновление и синхронизация через [NSUserDefaults persistentDomainForName:]. Это успешно обновляет предпочтение, однако loginwindow не сразу перезагружает это предпочтение. С помощью этого кода можно подать сигнал loginwindow для перезагрузки предпочтения из приложения, работающего в пространстве имен начальной загрузки пользователя:

CFMessagePortRef port = CFMessagePortCreateRemote(kCFAllocatorDefault, CFSTR("com.apple.loginwindow.notify"));
CFMessagePortSendRequest(port, 500, NULL, 0, 0, NULL, NULL);
CFRelease(port);

но порт loginwindow недоступен из пространства имен начальной загрузки демона.

Есть ли лучший способ обновить это предпочтение? Или простой способ сообщить о любом окне входа в систему от демона?

1 Ответ

0 голосов
/ 14 января 2016

Я тоже ищу ответ на этот вопрос и потерпел неудачу. Однако я обнаружил, что если вы используете Apple Script, значения обновляются:

osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...