Is there an API, that can lock the screen as the menu bar entry you can add from Keychain
preferences?
This Keychain
function is (was) locking the screen but not bringing the system to sleep.
Immediately lock the screen of your Mac On your Mac, choose Apple menu > Lock Screen. Use hot corners. Press Touch ID, if it's available on your Mac or Magic Keyboard. Press the Lock Screen button, if it's available on your Magic Keyboard.
It's not officially documented and uses private API, but the following works on MacOS 10.10 (and maybe also on earlier systems):
// lockscreen.c
extern int SACLockScreenImmediate ( void );
int main ( ) {
return SACLockScreenImmediate();
}
Build with:
clang -F /System/Library/PrivateFrameworks -framework login -o lockscreen lockscreen.c
Now calling ./lockscreen
will lock the screen immediately, regardless what the user has configured in their security preferences (whether to lock on screensaver/system sleep) and without logging the user out. This is the function the system uses internally for locking the screen.
I strongly discourage using it, it may break your app and I'm not even sure I am calling it correctly (maybe it needs arguments, maybe it has a return value), so it may even break your whole system (temporarily - reboot will fix everything), who knows. I just wanted to post that somewhere for documentation.
If someone with better hacker skills than me can analyze this call some more, this would be nice and useful.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With