2013-03-07 69 views
0

我试图通过使用终端在预览中关闭打开的窗口。我在互联网上找到的所有东西都建议使用AppleScript代替,但我不能这样做,因为plist选项对我来说不存在(启用osascript预览,如Super User所示)。我正在运行OS X 10.8.2。用Bash /终端杀死应用程序窗口

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

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

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

我可以找到打开.pdf,进程,套接字,节点等。与lsof,但我很犹豫要继续这样的信息,因为AFAIK,我可以杀死整个过程(矫枉过正)或关闭端口/套接字(奇怪杀死)与该信息。

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

编辑:添加到osascript的超级用户链接中,以便添加上下文。

+0

'man ps' then'man kill' no no need to look on the internet。 – 2013-03-07 04:20:00

+0

是的,但是,我会用kill来关闭应用程序的一个子单元而不终止整个应用程序的信号?手册中列出的唯一信号或者太嗜血或者太无效。我迄今为止使用的搜索引擎并没有帮助。 – 2013-03-07 05:06:09

回答

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脚本来代替。 (我点击的“第一个按钮”是窗口上的关闭按钮。)

+0

抱歉,我的意思是[this](http://superuser.com/questions/526624/how-do-i-close-a-window-from-an-application-passing-the-file-name)by plist enable 。 您的解决方案确实有效,而且您的解决方法非常巧妙,但是真的没有办法在没有“单击”“第一个按钮”的情况下关闭沙盒应用程序中的窗口? – 2013-03-07 04:59:56

+0

不是我所知道的。据我所知,该应用程序对普通的AppleScript来说简直是不可见的。 – duskwuff 2013-03-07 06:11:29