Applescript для блокировки экрана
Мне нужен небольшой Applescript для блокировки экрана, то же самое поведение, которое я получаю, когда я нажимаю значок цепочки для ключей в строке меню и выбираю "Блокировка экрана".
Я нашел способ активировать заставку, но это не совсем то, что мне нужно.
4 ответа
Понимаете ли вы, что на панели настроек безопасности вы можете запросить пароль для запуска из заставки, но по умолчанию она не требует аутентификации?
Затем вы можете активировать заставку с помощью вашего метода или этого AppleScript:
do shell script "open /System/Library/Frameworks/ScreenSaver.framework/Versions/A/Resources/ScreenSaverEngine.app"
Вы также можете добавить блокировку цепочки для ключей и использовать этот AppleScript, который я нашел здесь.
activate application "SystemUIServer"
tell application "System Events"
tell process "SystemUIServer"
repeat with i from 1 to number of menu bar items of menu bar 1
tell menu bar item i of menu bar 1
click
try
if name of menu item 1 of front menu is "Lock Screen" then
click menu item "Lock Screen" of front menu
exit repeat
end if
end try
end tell
end repeat
end tell
end tell
Для этого сценария требуется проверка универсального доступа -> Включить доступ для вспомогательных устройств.
Не парься, просто используй tell application "Finder" to sleep
Просто беги
/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend
Для этого не требуется никакого дополнительного программного обеспечения, и это намного проще, чем графический сценарий.
Вот решение от Mac OS X Hints, но, похоже, сначала нужно установить JackSMS, что бы это ни было. Тогда вы можете сделать
tell application "JackSMS" to set lock screen to true
tell application "JackSMS" to set lock screen to false
Вот мой единственный вкладыш для этого. Он использует системные события для отправки комбинации клавиш по умолчанию для команды блокировки экрана и работает во всех версиях OSX. Даже Мохаве! Хотя это будет запрашивать дополнительные разрешения безопасности для приложения, в более новых версиях OSX
tell application "System Events" to keystroke "q" using {control down, command down}