2012-02-07 10 views
6

In Mac OSX lion, sto cercando di impostare l'applicazione predefinita per tipi di file specifici. Utilizzando lo script Apple sottostante, possiamo impostare l'applicazione predefinita per lo specifico "file.abc".Come impostare l'applicazione predefinita per tipi di file specifici in Mac OS X?

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

ma voglio impostare la stessa applicazione di default per tutti i file che hanno il tipo di file o di proroga "abc".

Ho provato quanto segue per farlo. Ha aggiunto una voce in <HOME>/Library/Preferences/com.apple.LaunchServices.plist. Ma i file non vengono aperti con l'applicazione specificata.

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

Spero che qualcuno sappia cosa mi manca per raggiungerlo.


Risposta Trovato:

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 

risposta

5

Forse non stai facendo nulla di sbagliato ma che il file com.apple.launchservices deve solo essere ricaricato. È possibile disconnettersi, attendere alcuni minuti o forzare il riavvio dei servizi di avvio. Nell'esempio seguente, dico che i file di testo public.comma-separated-values ​​(nota: questo non significa che ogni file CSV è questo tipo di contenuto) devono essere aperti con TextEdit anziché 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

Provato sopra gli script creando un tipo di file "xyz" con l'applicazione "com.apple.textedit". Ma non funziona. Sei sicuro che sopra due script di linea funziona ... –

+0

Sono sicuro che funziona perché stiamo usando quello script. Sei sicuro di utilizzare un tipo di file corretto 'xyz' e identificatore di bundle. Per determinare il tipo di contenuto puoi usare mdls e vedere cosa restituisce. Anche se da quando il supporto del codice autore di SL è stato eliminato, è possibile che un file da un sistema 10.5 (o precedente) non possa modificare l'applicazione predefinita di LSHandlers. Aprilo su una macchina 10.6 o più recente e ri-salva il file. –

+0

Grazie per l'aiuto gentile e il tempo. Con poche modifiche con la tua risposta ha funzionato ed è stato aggiornato sopra. –

0

non sono sicuro se si sta solo cercando di fare questo livello di programmazione. Tu sei?

Altrimenti:

sul file, scegliere "Ottieni informazioni", e sotto "aperto con" selezionare il nome dell'applicazione. Fare clic sul pulsante "Cambia tutto"

+0

Desidero eseguire questa operazione "modifica tutto" in "Apri con" in modo programmatico. –

+0

Grazie per l'aiuto gentile e il tempo. Risposta di lavoro nel mio mac è stato aggiornato sopra. –

0

Si potrebbe voler dare un'occhiata a RCDefaultApp e il suo codice sorgente. È un programma che ti permette di impostare quali tipi di file sono aperti da quali app in Launch Services.