首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何使用cocoa或applescript打开、关闭和关闭另一个应用程序的对话框?

如何使用cocoa或applescript打开、关闭和关闭另一个应用程序的对话框?
EN

Stack Overflow用户
提问于 2012-06-07 22:19:36
回答 1查看 2.5K关注 0票数 1

我想打开另一个单独的应用程序,以迭代的方式打开该应用程序的项目/文档,然后关闭该应用程序。我还想关闭在打开文档时弹出的所有模态和非模态对话框。我想要关闭所有的对话框,包括崩溃对话框,以防应用程序失败/崩溃。

使用cocoa或applescript实现这一点的最佳方式是什么?我可以从哪里获得更详细的信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-08 08:04:30

如果应用程序有一个脚本接口,最好的方法当然是这样做。

您通常不希望在AppleScript中迭代,而是希望对查询的所有结果进行操作。

例如,对于几乎任何实现“标准套件”的应用程序,您只需:

代码语言:javascript
运行
复制
tell app "TextEdit" to close windows

这比以下代码更简单(也更快,更有可能在目标应用中正确实现):

代码语言:javascript
运行
复制
tell app "TextEdit"
  repeat with theWindow in windows
    close theWindow
  end repeat
end tell

当然,这可能会弹出保存/放弃更改对话框,并且可能会跳过或包括对话框和检查器等,这取决于应用程序的用户模型。

更重要的是,如果应用程序不支持脚本(和标准套件),它将无法工作。

此外,它对关闭崩溃报告也没有任何帮助-该窗口属于CrashReporter,而不是原始应用程序(这是一件好事,因为现在已经崩溃的…,您不能再与原始应用程序对话了)。

另一种方法是系统事件中的UI脚本功能。只有在启用了辅助访问的情况下,这才起作用。找出哪些窗口是您想要处理的窗口,以及哪些控件是您想要的控件,这也可能有点麻烦。

例如:

代码语言:javascript
运行
复制
tell app "System Events"
  click button 1 of windows of application process "TextEdit"
end tell

这是通过查找TextEdit进程拥有的每个窗口(无论是哪种类型),并模拟单击该窗口中的第一个按钮(红色关闭按钮)来实现的。

如果你用谷歌搜索"AppleScript UI脚本“,你会发现很多不同的指南。我发现的第一个热门是http://www.makeuseof.com/tag/applescripts-ui-scripting-mac/,它看起来是一个不错的起点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10933711

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档