Applescript 激活关闭的窗口

Posted

技术标签:

【中文标题】Applescript 激活关闭的窗口【英文标题】:Applescript activate closed window 【发布时间】:2010-09-30 13:23:18 【问题描述】:

我怎样才能激活一个应用程序并让它打开“标准”窗口,就好像我用applescript点击了停靠图标一样?

例如我在 iTunes 中,使用 command-w 打开另一个应用程序关闭窗口,然后单击 iTunes 停靠图标,iTunes 成为最前面的应用程序并打开它的“标准”iTunes 窗口。

当我想用 applescript 模拟时,我输入:

tell application iTunes to activate

然后发生的事情是,iTunes 成为最前面的应用程序,但“标准”窗口(在这种情况下为 iTunes 窗口)并未打开。

有谁知道用通用方法打开“标准”窗口的方法,适用于任何应用程序?

谢谢b00tsy

【问题讨论】:

【参考方案1】:

很长一段时间后,我发现我期望发生的事情

tell application "anyApplication" activate

实际上发生在

tell application "anyApplication" reopen

【讨论】:

【参考方案2】:

没有真正的、单一的方式来显示“标准”窗口。由每个应用程序的开发人员决定如何创建和显示窗口。例如,这里是 iTunes 和 Microsoft Word 2008...

tell application "iTunes"
   activate
   set theBrowser to browser window 1
   set visible of theBrowser to true
end tell

tell application "Microsoft Word"
   set newDocument to make new document
end tell

在 iTunes 中,有三个“标准”窗口——浏览器、均衡器和播放列表——并且浏览器和均衡器始终存在。但是,在 Microsoft Word 中,我们必须制作一个新文档,该文档尽可能接近“标准”。 大多数应用程序的工作方式与 Word 相同,但这不是保证,您必须查看给定应用程序的 Dictionary 以了解它如何处理窗口(尽管 iTunes 确实有一个 @ 987654322@ 类让所有人都失望,但那是你的 Applescript……)。

还有一点需要注意...在大多数情况下,一旦窗口关闭,重新打开它的唯一方法是打开填充您刚刚创建的窗口的文件,或者只是创建一个新窗口。 iTunes 在其实施中很少见。

【讨论】:

所以我猜应用程序开发人员在他/她的应用程序中选择当应用程序再次被取消隐藏时要做什么,并在某个方法中实现该行为,然后调用该方法...... 没错。 Applescript 的不稳定更多来自于个别开发者的实施以及缺乏来自 Apple 的指导。

以上是关于Applescript 激活关闭的窗口的主要内容,如果未能解决你的问题,请参考以下文章

macOS-代码调用Terminal执行脚本或者杀死进程窗口

在 Apple Music 中打开/搜索 Spotify 曲目(使用 Applescript)

从 Cocoa 应用程序运行 AppleScript

WPF编程怎么激活指定窗口?

通过applescript设置鼠标跟踪速度

沙箱化嵌入 AppleScript 的 Objective-C 应用程序