1

我正在尝试使用终端关闭预览中打开的窗口。我在互联网上找到的所有内容都建议使用 AppleScript,但我不能这样做,因为我不存在 plist 选项(启用 osascript 进行预览,如Super User所示)。我正在运行 OS X 10.8.2。

我应该在这里指出,我并不真正关心 AppleScript,并且更喜欢 bash 解决方案。

重申一下,我在预览中打开了一个 .pdf,我想关闭访问和显示文件的特定窗口,而不是终止整个程序。我认为这是可能的,因为操作系统有一种方法可以在没有 bash 的情况下杀死窗口。

我还想知道操作系统在关闭应用程序的子进程(窗口)时如何与 shell 交互。

我可以找到打开的 .pdf、进程、套接字、节点等。使用 lsof,但自从 AFAIK 以来,我对进一步了解此类信息犹豫不决,我可以使用该信息终止整个进程(过度杀伤)或关闭端口/套接字(奇怪的终止)。

感谢您帮助我解决这个问题。我的谷歌能力让我失望,这真的让我很困扰。

编辑:在超级用户链接中添加了 osascript 启用添加上下文。

4

1 回答 1

1

您采用的方法是行不通的——应用程序中的窗口不是分开的,以至于您可以远程强制一个窗口关闭而不影响整个应用程序。

我能想到的唯一解决方案确实涉及 AppleScript。我不确定“plist 选项对我来说不存在”是什么意思。

tell application "System Events"
    click first button of (first window of process "Preview" whose name is "example.png")
end tell

这比平常更令人费解,因为 Preview.app 是沙盒化的,因此无法通过普通方法编写脚本——我不得不改用 UI 脚本。(我单击的“第一个按钮”是窗口上的关闭按钮。)

于 2013-03-07T04:26:21.927 回答