Apple скрипт для вывода панели системных настроек на передний план

Я пытаюсь перейти к панели безопасности в системных настройках, используя приведенный ниже сценарий, если панель уже открыта и свернута, сценарий не может вывести ее на передний план. Есть ли способ наряду с активацией, я могу вывести его на фронт

tell application "System Preferences"
     activate
     set current pane to pane "com.apple.preference.security"
end tell

2 ответа

Решение

Этот скрипт проверяет состояние окна.

  • Если окно не существует, откройте его.
  • Если окно существует, но миниатюрно, сделайте его видимым.
  • Если окно видно, ничего не делайте.

    tell application "System Preferences"
        activate
        if exists window "Security & Privacy" then
            tell window "Security & Privacy" to if it is miniaturized then set miniaturized to false
        else
            set current pane to pane "com.apple.preference.security"
        end if
    end tell
    

Я просто выйду из Системных настроек и снова активирую его:

tell application "System Preferences"
    quit
    activate
    set current pane to pane "com.apple.preference.security"
end tell

Примечание. Иногда выход из системы, а затем немедленная активация приложения могут завершиться сбоем, поскольку два процесса перекрываются, что приводит к ошибке. Если это произойдет, следующие дополнительные несколько строк (добавленные в контексте исходного ответа) должны смягчить это обстоятельство:

tell application "System Preferences"
    quit

    repeat while it is running
        delay 0.2
    end repeat

    activate
    set current pane to pane "com.apple.preference.security"
end tell
Другие вопросы по тегам