通过 AppleScript 设置屏幕共享密码
Posted
技术标签:
【中文标题】通过 AppleScript 设置屏幕共享密码【英文标题】:Set screen sharing password via AppleScript 【发布时间】:2013-11-11 05:06:38 【问题描述】:我想使用苹果脚本设置屏幕共享密码并选中“VNC 查看器可以使用密码控制屏幕”选项。我是苹果脚本的新手,我所做的只是检查系统偏好设置的共享窗格下的“屏幕共享”选项。
这是我目前所拥有的:
告诉应用程序“系统偏好设置” 将当前窗格设置为窗格“com.apple.preferences.sharing” 结束告诉 告诉应用程序“系统事件” 告诉进程“系统偏好设置” 如果值为 0,则告诉窗口“共享”的第 1 组的滚动区域 1 的表 1 的第 1 行的复选框 1,然后单击 结束告诉 告诉进程“系统偏好设置” 单击窗口“共享”的第 1 组的按钮 1 延迟 1 将文本字段 1 的值设置为“p” 结束告诉 结束告诉但是上面的代码会提示我一个错误:
Can’t get text field 1 of process "System Preferences". Invalid index
【问题讨论】:
请向我们展示您目前拥有的东西以及您遇到的问题 这是我到目前为止所拥有的@mcgrailm:告诉应用程序“系统偏好设置”将当前窗格设置为窗格“com.apple.preferences.sharing”结束告诉应用程序“系统事件”告诉进程“系统偏好设置” “告诉窗口“共享”组1的滚动区域1的表1的第1行的复选框1如果值为0然后单击结束告诉进程“系统偏好设置”单击窗口“共享”延迟1的组1的按钮1将文本字段 1 的值设置为“p” end tell end tell 但上面的代码会提示我一个错误:Can't get text field 1 of process "System Preferences"。无效索引。 嗯,你能把它放在你的帖子里吗 【参考方案1】:这似乎对我有用:
告诉应用程序“系统偏好设置” 将当前窗格设置为窗格“com.apple.preferences.sharing” 结束告诉 告诉应用程序“系统事件” 告诉进程“系统偏好设置” 如果值为 0,则告诉窗口“共享”的第 1 组的滚动区域 1 的表 1 的第 1 行的复选框 1,然后单击 结束告诉 告诉进程“系统偏好设置” 延迟 1 单击窗口“共享”的第 1 组的按钮 1 告诉窗口“共享”的表 1 告诉复选框“VNC 查看器可以使用密码控制屏幕:”如果值为 0,则单击 延迟 1 将文本字段 1 的值设置为“p” 单击“确定”按钮 结束告诉 结束告诉 结束告诉特别是文本字段(以及“VNC 查看器...”复选框和“确定”按钮”是tell sheet 1 of window "Sharing"
的成员,因此需要适当调整tell
。
如果您不了解它们,有几个工具可以让这种事情变得更容易:
Accessibility Inspector
是捆绑在 OSX 中的一个小实用程序(或者可能是在 xcode 中 - 不确定)。它提供了有关鼠标当前所在的任何窗口中的任何 UI 元素的大量信息。
entire contents of
允许您在使用 Applescript 编辑器时转储给定范围内的所有 UI 元素。例如,如果我在此脚本的适当位置插入 get entire contents of window "Sharing"
,它会在 Applescript 编辑器的事件面板中列出“共享”窗口的所有 UI 元素。
【讨论】:
谢谢。有效。但是我将如何自动输入密码`因为系统偏好设置正在询问我的 mac 登录用户的密码? @hnmpk - 我不完全确定。这是因为System Preferences
对话框被“单击锁定以进行更改”锁定了吗?在我的情况下,如果它被锁定,那么脚本将与Can't get sheet 1 of window "sharing" ...
一起失败。但是我解锁它然后运行脚本,它运行没有问题。
我觉得我解释得不好。设置新的 VNC 密码后,它会提示我 System Preferences want to make changes. Type your password to allow this.
我也希望它自动化。这可能吗?以上是关于通过 AppleScript 设置屏幕共享密码的主要内容,如果未能解决你的问题,请参考以下文章