2012-02-07 11 views
6

W systemie Mac OSX lew, próbuję ustawić domyślną aplikację dla określonych typów plików. Korzystając z poniższego skryptu Apple, możemy ustawić domyślną aplikację dla określonego "file.abc".Jak ustawić domyślną aplikację dla określonych typów plików w systemie Mac OS X?

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

Ale chcę ustawić tę samą aplikację jako domyślną dla wszystkich plików mających typ pliku lub rozszerzenie jako "abc".

Próbowałem wykonać następujące czynności, aby to zrobić. Dodano wpis w <HOME>/Library/Preferences/com.apple.LaunchServices.plist. Ale pliki nie są otwierane za pomocą określonej aplikacji.

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>" 

Mam nadzieję, że ktoś wie, czego mi brakuje, aby to osiągnąć.


Odpowiedź Znaleziono:

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 

Odpowiedz

5

Może nie robisz nic złego, ale plik com.apple.launchservices musi zostać ponownie załadowany. Możesz się wylogować, poczekać kilka minut lub wymusić restartserservices. W poniższym przykładzie mówię, że public.comma-separated-values-text-pliki tekstowe (uwaga: nie oznacza to, że każdy plik CSV jest tego typu zawartości) musi zostać otwarty przy pomocy TextEdit zamiast 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

Wypróbowałem powyższe skrypty, tworząc typ pliku "xyz" za pomocą aplikacji "com.apple.textedit". Ale nie działa. Czy jesteś pewien, że powyższe dwa skrypty liniowe działają ... –

+0

Jestem pewien, że to działa, ponieważ używamy tego skryptu. Czy na pewno używasz poprawnego typu pliku "xyz" i identyfikatora pakietu. Aby określić typ zawartości, możesz użyć mdls i sprawdzić, co zwraca. Nawet jeśli program SL został usunięty, możliwe jest, że plik z systemu 10.5 (lub starszego) nie może zmienić jego domyślnej aplikacji przez LSHandlers. Otwórz go na komputerze 10.6 lub nowszym i ponownie zapisz plik. –

+0

Dzięki za życzliwą pomoc i czas. Z kilkoma zmianami za pomocą odpowiedzi ur zadziałało i zostało zaktualizowane powyżej. –

0

Nie jestem pewien, czy jesteś tylko próbuje to zrobić programowo. Jesteś?

Inaczej:

na plik, wybierz „get info”, a pod „Otwórz za pomocą” wybierz nazwę aplikacji. Kliknij przycisk "Zmień wszystko"

+0

Chcę to zrobić "zmień wszystko" w programie "otwórz za pomocą". –

+0

Dzięki za życzliwą pomoc i czas. Odpowiedź robocza w moim mac została zaktualizowana powyżej. –

0

Być może zechcesz rzucić okiem na RCDefaultApp i jego kod źródłowy. Jest to program, który pozwala ustawić, które typy plików są otwierane przez które aplikacje w Launch Services.

Powiązane problemy