2012-02-07 83 views
6

在Mac OSX獅子,我試圖爲特定文件類型設置默認應用程序。 使用下面的蘋果腳本,我們可以爲特定的「file.abc」設置默認應用程序。如何在Mac OS X中爲特定文件類型設置默認應用程序?

tell application "System Events" 
set default application of file "/Users/test/Desktop/file.abc" to "/Applications/TextEdit.app" 
end tell 

但我想設置相同的默認應用程序,具有文件類型或擴展爲「ABC」的所有文件。

我已經嘗試完成以下操作。它在<HOME>/Library/Preferences/com.apple.LaunchServices.plist中添加了一個條目。但是文件不能用指定的應用程序打開。

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>abc</string><key>LSHandlerContentTagClass</key><string>public.abc</string><key>LSHandlerRoleAll</key><string>com.apple.textedit</string></dict>" 

希望有人知道我錯過了什麼來實現它。


答發現:

defaults write com.apple.LaunchServices LSHandlers -array-add "<dict><key>LSHandlerContentTag</key><string>ugurugu</string><key>LSHandlerContentTagClass</key><string>public.filename-extension</string><key>LSHandlerRoleAll</key<string>org.videolan.vlc</string></dict>" 
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user 

回答

5

也許你沒有做錯什麼,但是該文件com.apple.launchservices只是需要重新加載。您可以註銷,等待幾分鐘或強制啓動服務重新啓動。在下面的例子中,我說public.comma-separated-values-text文件(注意:這並不意味着每個CSV文件都是這種內容類型)必須用TextEdit而不是Excel來打開。

do shell script "defaults write com.apple.LaunchServices LSHandlers -array-add '{ LSHandlerContentType = \"public.comma-separated-values-text\"; LSHandlerRoleAll = \"com.apple.TextEdit\"; }'" 

do shell script "/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user" 
+0

通過使用應用程序「com.apple.textedit」創建文件類型「xyz」來嘗試上述腳本。但不工作。你確定以上兩行腳本的作品... – 2012-02-07 09:52:13

+0

我敢肯定它的工作原理,因爲我們正在使用該腳本。你確定你正在使用正確的文件類型'xyz'和包標識符。要確定內容類型,您可以使用mdls並查看它返回的內容。即使自SL創建者代碼支持已經下降,10.5(或更舊版本)系統中的文件也可能無法通過LSHandlers更改其默認應用程序。在10.6或更新的機器上打開它並重新保存文件。 – 2012-02-07 10:40:56

+0

感謝您的親切幫助和時間。幾乎沒有任何變化,你的答案已經工作,並且已經在上面更新了 – 2012-02-07 11:49:43

0

我不知道,如果你只是想以編程方式做到這一點。你是?

否則:

在文件中,選擇「獲取信息」和「打開方式」下選擇應用程序的名稱。 點擊按鈕「全部更改」

+0

我想以編程方式在「打開」下執行「更改全部」。 – 2012-02-07 07:52:27

+0

感謝您的親切幫助和時間。我的Mac中的工作答案已在上面更新。 – 2012-02-07 11:49:51

0

你可能想看看RCDefaultApp和它的源代碼。這是一個程序,可讓您設置啓動服務中哪些應用程序打開哪些文件類型。

相關問題