Разблокируйте системные настройки с помощью графического интерфейса Applescript - PullRequest
2 голосов
/ 26 сентября 2011

Я пытаюсь разблокировать Системные настройки, используя applecript.

Мне удалось заставить мой сценарий щелкнуть часть «Нажмите на замок, чтобы внести изменения», и я пытался заставить яблочный скрипт ввести имя пользователя, но я продолжаю получать ошибку

error "System Events got an error: Can’t get window 1 of process \"SecurityAgent\". Invalid index." number -1719 from window 1 of process "SecurityAgent"

Вот мой код, кто-нибудь может мне помочь?

activate application "System Preferences"
tell application "System Events"
    set preferencesLocked to false
    tell process "System Preferences"
        delay 1
        click menu item "Security & Privacy" of menu "View" of menu bar 1
        delay 2.5
        if title of button 4 of window 1 is "Click the lock to make changes." then
            set preferencesLocked to true
            click button "Click the lock to make changes." of window 1
        end if
    end tell
    if preferencesLocked is true then
        delay 2.5
        activate application "SecurityAgent"
        tell application "System Events"
            tell process "SecurityAgent"
                set value of text field 1 of scroll area 1 of group 1 of window 1 to "username"
            end tell
        end tell
    end if
end tell

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

1 голос
/ 18 мая 2015

Это можно сделать с помощью команды «Системные события» «нажатие клавиши» для ввода пароля.Версия Yosemite (элементы пользовательского интерфейса переместились):

set thePW to "MY_PASSWORD"
set thePane to "Security & Privacy"

activate application "System Preferences"
delay 1
tell application "System Events"
    tell process "System Preferences"
        click menu item thePane of menu "View" of menu bar 1
        delay 3
        if title of button 1 of window 1 is "Click the lock to make changes." then
            click button 1 of window 1
            delay 2
            keystroke thePW
            keystroke return
        end if
    end tell
end tell
0 голосов
/ 26 сентября 2011

Диалог аутентификации - это особая вещь в OS X;это реализовано безопасным способом, где это по крайней мере не может быть прочитано регистраторами ключей.

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

...