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}
Другие вопросы по тегам