2011-08-15 41 views
2

在OS X重裝AskForPassword上之後,有一個爲需要從睡眠或屏幕保護程序喚醒密碼的偏好,保存在首域com.apple.screensaver,關鍵askForPassword。我想從一個以root身份運行的守護程序更改該首選項,但我不確定正確的方法是什麼。觸發的loginwindow從睡眠

一個選項是通過[NSUserDefaults persistentDomainForName:]讀取,更新和同步。成功更新首選項,但loginwindow不會立即重新加載該首選項。這是可能的信號登錄窗口從通過該代碼在用戶引導命名空間中運行的應用程序重新加載偏好:

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

但登錄窗口端口不可用從守護進程的引導命名空間。

是否有更好的方法來更新該偏好?或者直接告訴守護進程的任何登錄窗口?

+0

我也在尋找一個答案。任何人在任何地方的幫助,甚至看看會有所幫助。 – Dustin

回答

0

我也在尋找這個答案,並且總結出來了。 但是我沒有發現,如果你用蘋果腳本,該值將被更新:

osascript -e 'tell application "System Events" to set require password to wake of security preferences to false'