跳转到内容

用户交互级别

用户交互级别

当需要用户反馈时,应用程序通常会弹出一个对话框。这被称为用户交互。当你直接与应用程序交互时,这是有用且预期的;然而,当脚本与应用程序交互时,对话框会暂停脚本的执行,直到对话框被关闭。这在自动化环境中可能是一个严重的问题,因为没有人来处理这些对话框。

application 对象包含一个 user interaction level 属性,允许你控制脚本执行期间允许的交互级别。你可以在自动化环境中禁止交互,或者在脚本以更交互的方式使用时允许一些交互。


AppleScript

使用 AppleScript,可以从一台机器向另一台机器发送命令,因此可以实现更多类型的交互。在 AppleScript 中,user interaction 级别属性有四个可能的值:

属性值结果
never interact不允许任何交互。
interact with self仅允许与从脚本菜单(文件 > 脚本)执行的脚本交互。
interact with local允许与在本地机器上执行的脚本交互(包括自身)。
interact with all允许与所有脚本交互。

这四个值允许你根据脚本命令的来源控制交互。例如,如果应用程序作为远程用户的服务器,远程用户很难关闭对话框,但对于坐在机器前的人来说则没有问题。在这种情况下,将交互级别设置为 interact with local 可以防止对话框中断远程脚本,但允许为本地脚本显示对话框。


JavaScript

在 JavaScript 中,app.userInteractionLevel 属性有两个可能的值:

属性值结果
DISPLAYALERTS允许交互。
DONTDISPLAYALERTS不允许交互。

VBScript

在 VBScript 中,Application 对象的 UserInteractionLevel 属性有两个可能的值:

属性值结果
aiDisplayAlerts允许交互。
aiDontDisplayAlerts不允许交互。