有谁知道如何发现 Mac 上当前用户的屏幕保护程序的超时时间。如果可能的话,我更喜欢编程方法,但也很乐意解析命令行实用程序的输出。我已经使用 pmset 执行此操作来获取 sleep 时间。
最佳答案
当前用户(至少从 10.6.x 以上)的屏幕保护程序设置值存储在 property list file 中在~/Library/Preferences/com.apple.screensaver.plist
中。如果用户决定禁用自动屏幕消隐/保存,则可能没有任何值(value)。
您可以使用名为 defaults(1) 的命令行实用程序读取该值。 :
defaults read com.apple.screensaver idleTime
defaults -currentHost read com.apple.screensaver idleTime
前者提供对当前用户设置的访问,后者提供系统默认设置(如果存在)。
读取默认值(1)的值有些复杂,因为该值可能存在也可能不存在。如果当前用户禁用了屏幕保护程序,那么假设 defaults read com.apple.screensaveridleTime
将返回零是明智的,但事实并非如此。相反,defaults(1) 会在终端上抛出错误消息并返回非零退出代码。您必须首先检查退出代码并仅在其为零的情况下才进行解析,而不是仅仅解析 defaults(1) 的输出。另一方面,在解析外部命令的输出时,无论如何这可能是一个明智的策略。
苹果提供programming interfaces with their Xcode用于读/写property lists以及。
关于macos - 以编程方式或通过 Mac 上的命令行发现当前用户的屏幕保护程序超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20897862/