通过 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 设置屏幕共享密码的主要内容,如果未能解决你的问题,请参考以下文章

如何在Mac上远程控制另一台Mac

如何通过 WiFi 直接连接将屏幕共享到另一台设备

通过applescript设置鼠标跟踪速度

AppleScript 基础(一)基本语法和数据类型

AppleScript脚本学习记录《二》

如何通过 AppleScript 设置当前 Mail.app 外发消息的发件人?