2010-06-03 18 views
13

Estoy intentando hacer que mi programa asocie automáticamente ciertas extensiones de archivo para que las abra, pero no estoy seguro de cómo hacerlo en MacOSX. No estoy preguntando cómo asociar un programa con una extensión de archivo en la GUI, quiero poder programarlo en mi programa.MacOSX - Asociar extensión de archivo con la aplicación - Programáticamente

+0

esta pregunta pertenece a nuestro sitio hermano, Stack Overflow. se migrará allí en breve. –

Respuesta

11

para registrar una nueva extensión de archivo con una aplicación utilice el siguiente comando por defecto.
Reemplazar PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD con la extensión de archivo, es decir, txt.
Reemplace org.category.program con el nombre com/org de su programa, es decir, com.apple.itunes.

$ defaults write com.apple.LaunchServices LSHandlers -array-add \ 
"<dict><key>LSHandlerContentTag</key> 
<string>PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD</string><key>LSHandlerContentTagClass</key> 
<string>public.filename-extension</string><key>LSHandlerRoleAll</key> 
<string>org.category.program</string></dict>" 


Una vez que haya añadido la extensión del archivo a los servicios de lanzamiento, debe reiniciar el demonio de servicios de lanzamiento por lo que volver a leer el archivo de configuración.

Puede ejecutar el siguiente comando para reiniciar los servicios de inicio, o simplemente reiniciar su computadora. Iniciar sesión/salir también podría hacerlo, pero no lo he intentado.

$ /System/Library/Frameworks/CoreServices.framework/Versions/A/Framework/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user 
7
+0

Mal enlace. Presumiblemente, aquí es adonde ir ahora: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685 –

-1

que describe todo el asunto en detalle https://moosystems.com/articles/8-double-click-on-files-in-finder-to-open-them-in-your-python-and-tk-application.html.

Esto implica agrupar su aplicación a través de py2app, agregar cierta clave a su archivo Info.plist e instalar controladores de eventos en su aplicación.

+0

This post se trata de una aplicación de Python (empaquetarla como una aplicación de Mac). Puede incluir la información necesaria, pero no parece rayar directamente la picazón. –

+0

El comando predeterminado mencionado en la respuesta aceptada anterior funciona bien, pero necesitaría llamar a esto después de la instalación de su aplicación, mientras que vincular su aplicación a un sufijo de archivo como se describe en mi artículo lo administra automáticamente siempre que copie la aplicación a un Mac. Pero sí, mi artículo describe un proceso de construcción de Python más grande también. Por otro lado, el proceso será el mismo para cualquier aplicación que cree para macOS. –

Cuestiones relacionadas