如何通过 OS X 上的命令行判断锁屏是否处于活动状态?

如何通过 OS X 上的命令行判断锁屏是否处于活动状态?

我有一个 cron 脚本,我希望在登录 Mac 时定期运行该脚本。如果锁定屏幕已激活,我不希望它运行。有没有办法从命令行/终端检查锁定屏幕是否已激活?

答案1

这也是我想要的确切实现。经过大量研究,我将这个 applescript 与 abarnert 的贡献放在一起,https://stackoverflow.com/questions/11505255/osx-check-if-the-screen-is-locked

set queryUserLoginState to "python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d'"

tell the application "SleepDisplay" to launch
set displayOff to true
delay 2
repeat while displayOff
    set loginTest to do shell script queryUserLoginState
    if loginTest does not contain "CGSSessionScreenIsLocked = 1" then
        set displayOff to false
    end if
    delay 3
end repeat

-- do stuff!

现在,我知道您要求检查终端以查看屏幕是否被锁定;它是在代码中实现的。

我在这里要指出的是:

如果终端命令的结果:

python -c 'import sys,Quartz; d=Quartz.CGSessionCopyCurrentDictionary(); print d'

包含条目

CGSSessionScreenIsLocked = 1

那么当前屏幕是锁定的。当不包含该行时,表示用户已登录(即在锁定屏幕上输入了密码)。

相关内容