Авторизуйтесь на mac с использованием appleScript - PullRequest
1 голос
/ 05 декабря 2010

Я написал небольшой скрипт для открытия Safari на удаленной машине:

tell application "Safari"
    activate
    set URL of first document to "http://www.stackoverflow.com/"
end tell

Я бы запустил яблочный скрипт удаленно, потому что я могу подключиться через SSH.

Однако, если машинафизически не вошел в систему (то есть я не подошел к нему и не ввел свои данные), ничего не происходит.Обратите внимание, что я все еще могу подключиться к машине с помощью SSH, поэтому все еще могу запускать сценарии.

Итак, могу ли я войти на машину удаленно, используя applecript?

1 Ответ

5 голосов
/ 05 декабря 2010
name="theshortname";
password="thePassword";

osascript <<EOF
tell application "System Events"
    keystroke tab
    keystroke (ASCII character 8)
    keystroke tab
    keystroke (ASCII character 8)
    keystroke return
    delay 0.5
    keystroke tab
    keystroke "$name"
    keystroke tab
    delay 0.5
    keystroke "$password"
    delay 0.5
    keystroke return
    keystroke return
    keystroke return
    keystroke return
end tell
EOF

Да.Это то, что я использую.Просто измените первые две строки.Я делаю это как root;Я не проверял это с sudo.Паузы гарантируют, что текст появился, и курсор вставки переместился в следующее поле, прежде чем продолжить.Дополнительная информация в начале гарантирует, что учетные данные окажутся в правильных полях (ASCII char 8 является пробелом).

Известная ошибка: иногда окно входа в Snow Leopard не позволяет вводить текст, несмотря на мигающий курсор вставки.Я не нашел способа отправить клик, необходимый для получения фактического фокуса в поле имени (один щелчок мышью (даже через vnc) заставляет скрипт нормально работать, вздыхать).

Редактировать: ACK!Забыл упомянуть, что использование системных событий для взаимодействия с графическим интерфейсом зависит от системы универсального доступа, встроенной в OS X. Это всего лишь флажок, и его нужно включить только один раз.Системные настройки> Универсальный доступ> Включить доступ для вспомогательных устройств.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...