2012-02-07 9 views
6

En Mac OSX lion, estoy tratando de establecer la aplicación predeterminada para tipos de archivos específicos. Utilizando el siguiente script de apple, podemos establecer la aplicación predeterminada para el "archivo.abc" específico.¿Cómo configurar la aplicación predeterminada para tipos de archivos específicos en Mac OS X?

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

Pero quiero fijar la misma aplicación por defecto para todos los archivos que tienen el tipo de archivo o la extensión como "abc".

He intentado lo siguiente para hacerlo. Agregó una entrada en <HOME>/Library/Preferences/com.apple.LaunchServices.plist. Pero los archivos no se abren con la aplicación especificada.

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

Espero que alguien sepa lo que me falta para lograrlo.


respuesta Encontrado:

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 

Respuesta

5

Quizás no esté haciendo nada incorrecto, pero el archivo com.apple.launchservices solo necesita volver a cargarse. Puede cerrar la sesión, esperar unos minutos o forzar los servicios de inicio para reiniciar. En el siguiente ejemplo, digo que los archivos public.comma-separated-values-text (nota: Esto no significa que cada archivo CSV es este tipo de contenido) debe abrirse con TextEdit en lugar de 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

Intenté las secuencias de comandos anteriores creando un tipo de archivo "xyz" con la aplicación "com.apple.textedit". Pero no funciona ¿Estás seguro de que las dos líneas de comandos anteriores funcionan? –

+0

Estoy seguro de que funciona porque estamos usando esa secuencia de comandos. ¿Estás seguro de que estás usando un tipo de archivo correcto 'xyz' y un identificador de paquete? Para determinar el tipo de contenido puede usar mdls y ver lo que devuelve. Incluso si el soporte para el código de creador SL ha disminuido, es posible que un archivo de un sistema 10.5 (o anterior) no pueda alterar su aplicación predeterminada por LSHandlers. Ábralo en una máquina 10.6 o posterior y vuelva a guardar el archivo. –

+0

Gracias por su amable ayuda y tiempo. Con pocos cambios, tu respuesta ha funcionado y se ha actualizado anteriormente. –

0

no estoy seguro de si sólo está tratando de hacer esto mediante programación. ¿Eres tú?

lo contrario:

En el archivo, seleccione "obtener información", y en "abrir con" seleccione el nombre de la aplicación. Haga clic en el botón "Cambiar todo"

+0

Quiero hacer eso "cambiar todo" en "abrir con" programáticamente. –

+0

Gracias por su amable ayuda y tiempo. La respuesta de trabajo en mi mac se ha actualizado anteriormente. –

0

Es posible que desee echar un vistazo a RCDefaultApp y su código fuente. Es un programa que le permite establecer qué tipos de archivos están abiertos por cada aplicación en Servicios de lanzamiento.

Cuestiones relacionadas