2013-03-07 68 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