我写了一个小脚本在远程机器上打开Safari:
tell application "Safari"
activate
set URL of first document to "http://www.stackoverflow.com/"
end tell
Run Code Online (Sandbox Code Playgroud)
我会远程运行applescript,因为我可以通过SSH连接.
但是,如果机器没有物理登录(即,我没有达到它并输入我的详细信息),没有任何反应.注意,我仍然可以使用SSH连接到机器,因此仍然可以运行脚本.
那么我可以使用applescript远程登录机器吗?
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
Run Code Online (Sandbox Code Playgroud)
是.这就是我使用的.只需更改前两行即可.我是以root身份做的; 没有用sudo测试它.暂停确保文本出现并且插入光标已移动到下一个字段,然后继续.开头的额外内容确保凭证最终出现在正确的字段中(ASCII字符8是退格键).
已知错误:尽管插入光标闪烁,但Snow Leopard的登录窗口有时不允许输入文本.我没有找到一种方法来发送在名称字段中获得实际焦点所需的点击(用鼠标单击一下(甚至通过vnc)使脚本工作得很好).
编辑:确认!忘了提到使用System Events进行GUI交互取决于OS X中内置的Universal Access系统.它只是一个复选框,只需要打开一次.系统偏好设置>通用访问>启用辅助设备的访问权限.
| 归档时间: |
|
| 查看次数: |
3790 次 |
| 最近记录: |