Wie kann ich über die Befehlszeile unter OS X feststellen, ob der Sperrbildschirm aktiv ist?

Wie kann ich über die Befehlszeile unter OS X feststellen, ob der Sperrbildschirm aktiv ist?

Ich habe ein Cron-Skript, das ich regelmäßig ausführen möchte, wenn ich bei meinem Mac angemeldet bin. Ich möchte nicht, dass es ausgeführt wird, wenn der Sperrbildschirm aktiv ist. Gibt es eine Möglichkeit, über die Befehlszeile/das Terminal zu prüfen, ob der Sperrbildschirm aktiviert ist?

Antwort1

Dies ist genau die Implementierung, die ich auch wollte. Nach einer MENGE Recherche habe ich dieses Applescript mit Beiträgen von abarnert beihttps://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!

Ich weiß, Sie haben nach einer Terminalprüfung gefragt, um festzustellen, ob der Bildschirm gesperrt ist; das ist im Code implementiert.

Ich weise hier darauf hin:

Wenn das Ergebnis des Terminalbefehls:

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

enthält den Eintrag

CGSSessionScreenIsLocked = 1

Dann ist der Bildschirm momentan gesperrt. Wenn diese Zeile nicht vorhanden ist, ist der Benutzer angemeldet (d. h. das Passwort wurde auf dem Sperrbildschirm eingegeben).

verwandte Informationen