J'essaie d'obtenir que mon programme associe automatiquement certaines extensions de fichiers à ouvrir, mais je ne suis pas sûr de savoir comment faire cela dans MacOSX. Je ne demande pas comment associer un programme avec une extension de fichier dans l'interface graphique, je veux pouvoir le programmer dans mon programme.MacOSX - Extension de fichier associée à l'application - Programmation
Répondre
Pour enregistrer une nouvelle extension de fichier avec une application utilisez la commande suivante par défaut.
Remplacez PUT_FILE_EXTENSION_HERE_WITHOUT_PERIOD par l'extension de fichier, c'est-à-dire txt.
Remplacez org.category.program par le nom com/org de votre programme, c'est-à-dire 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>"
Une fois que vous avez ajouté l'extension de fichier aux services de lancement, vous devez redémarrer les services de lancement deamon il relira le fichier de configuration.
Vous pouvez exécuter la commande ci-dessous pour redémarrer les services de lancement ou simplement redémarrer votre ordinateur. La connexion/déconnexion peut également le faire mais je n'ai pas essayé.
$ /System/Library/Frameworks/CoreServices.framework/Versions/A/Framework/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user
Regardez ici pour une description de la clé CFBundleDocumentTypes Info.plist:
-K
Mauvais lien. Vraisemblablement c'est là où aller maintenant: https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html#//apple_ref/doc/uid/20001431-101685 –
Je décrit la chose en détail à https://moosystems.com/articles/8-double-click-on-files-in-finder-to-open-them-in-your-python-and-tk-application.html.
Cela implique de regrouper votre application via py2app, en ajoutant une certaine clé à votre fichier Info.plist et en installant des gestionnaires d'événements dans votre application.
Ce message est à propos d'une application Python (l'empaquetant comme une application Mac). Il pourrait inclure les informations nécessaires, mais il ne semble pas directement gratter la démangeaison. –
La commande par défaut mentionnée dans la réponse acceptée ci-dessus fonctionne bien, mais vous devrez l'appeler après l'installation de votre application, tandis que la liaison de votre application à un suffixe de fichier comme décrit dans mon article gère automatiquement cette Mac. Mais oui, mon article décrit un processus de construction Python plus grand, aussi. D'autre part, le processus sera le même pour toutes les applications que vous construisez pour macOS. –
cette question appartient à notre site partenaire, Stack Overflow. il sera migré bientôt. –