Je veux obtenir le programme associé à une extension, à la fois dans Linux et dans Windows. Je sais que je peux exécuter xdg-open sous Linux ou démarrer sous Windows, mais je vais ouvrir un fichier multimédia sur un serveur distant, donc utiliser cette méthode ouvrirait le navigateur web, et non le lecteur multimédia par défaut. Comment puis-je obtenir l'application par défaut d'une extension ?
Réponses
Trop de publicités?Couverture des fenêtres uniquement en dessous :
Je pense que ce sera proche de ce que je viens de faire pour le .doc (associé à winword.exe).
Sur mes machines...
ÉTAPE 1 : Jetez un coup d'œil à la clé de registre : HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.doc
Sur Windows XP
ÉTAPE 2 : Regardez le par défaut (ignorez tout le reste). La valeur par défaut que je vois est Word.Document.8
ETAPE 3 : Maintenant, utilisez cela, et insérez-le (remarquez-le dans le nom de la clé ci-dessous), pour lire la valeur par défaut de
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command
Cette valeur est : "\" C:\Program Fichiers \Microsoft Office XP Pro 2003 \OFFICE11\WINWORD.EXE\ " /n /dde"
Et c'est le chemin vers MS Word sur mon système, du moins sur XP.
Je viens aussi de remarquer, à propos des suggestions de Mikel ci-dessus, qu'elles sont excellentes pour XP :
C:\>assoc .doc
.doc=Word.Document.8
C:\>ftype Word.Document.8
Word.Document.8="C:\Program Files\Microsoft Office XP Pro 2003\OFFICE11\WINWORD.EXE" /n /dde
Sur Windows 7
La valeur par défaut de STEP 1 n'a pas été définie, et c'en était fini de la simplicité. Il y a une sous-clé appelée 'OpenWithProgIDs', donc je suppose que vous devriez la rechercher si la valeur par défaut est vide ou en fonction de la version du système d'exploitation.
ÉTAPE 2 : Lisez la sous-clé appelée " OpenWithProgIDs ". Il y a un élément nommé Word.Document.8
donc nous sommes de retour à cela maintenant.
ÉTAPE 3 : Branchez-le à nouveau, pour lire la valeur par défaut de
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.8\shell\Open\command
Dans ce cas (le mien), la valeur est plus complexe :
" C:\Program Fichiers (x86) \Common Fichiers \microsoft partagé \virtualization manipulateur \cvh.exe " "Microsoft Word Starter 2010 9014006604090000" /n "%1"
Dans le bon quartier, en ce qui concerne l'utilisation du registre.
Malheureusement, sous Windows 7, 'assoc' et 'ftype' n'ont pas fait l'affaire, du moins pour les fichiers .doc et le chemin d'accès à winword.exe sur ma machine.
Il existe un programme appelé xdg-mime qui est comme xdg-open, mais qui imprime les informations plutôt que d'essayer d'ouvrir le fichier.
xdg-mime query filetype /tmp/foobar.png
Imprime le type MIME du fichier /tmp/foobar.png, dans ce cas image/png.
xdg-mime query default image/png
Imprime le nom de fichier .desktop de l'application qui est enregistrée pour ouvrir les fichiers PNG.
Sous Windows, si vous ne trouvez pas d'API, vous pouvez peut-être utiliser assoc
o ftype
qui font partie de cmd
.