Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir Avec + Arguments

2 réponses
Avatar
Mr.Bilou
Bonjour.

J'ai des fichiers avec extension .mak (c'est un exemple !)

Actuellement j'ai associé ces fichiers avec un programme et 2 actions
- open
- open + liste paramètres

Je souhaiterais (**surtout pour savoir comment faire**) associer ce
type de fichiers avec plusieurs programmes

Au final avoir dans le menu contextuel "ouvrir avec" les options
suivantes
- mon programme1
- mon programme 1+ paramètre
- mon programme2

(et plus si possible)
Comment procéder ?

Apres petit tour dans la BDR je trouve
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.mak

est ce par la ?



Merci pour vos conseils.

2 réponses

Avatar
Jean-Claude BELLAMY
Dans le message :44227c8d$0$21092$,
Mr.Bilou a pris la peine d'écrire ce qui
suit :
Bonjour.

J'ai des fichiers avec extension .mak (c'est un exemple !)
Actuellement j'ai associé ces fichiers avec un programme et 2 actions
- open
- open + liste paramètres

Je souhaiterais (**surtout pour savoir comment faire**) associer ce
type de fichiers avec plusieurs programmes

Au final avoir dans le menu contextuel "ouvrir avec" les options
suivantes
- mon programme1
- mon programme 1+ paramètre
- mon programme2

(et plus si possible)
Comment procéder ?

Apres petit tour dans la BDR je trouve
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.mak

est ce par la ?
Euh non, pas tout à fait !!!


Tu dois commencer par examiner la clef :
HKCR.xxx
".xxx" étant l'extension concernée.

NB.: HKCR = HKEY_CLASSES_ROOT,
qui est un ALIAS de
HKEY_LOCAL_MACHINESOFTWAREClasses

HKLM = HKEY_LOCAL_MACHINE


Je vais raisonner sur un exemple, ce sera plus simple, à savoir ".VBS"

La valeur par défaut de HKEY_CLASSES_ROOT.vbs est "VBSFile"

On sélectionne alors la clef
HKEY_CLASSES_ROOTVBSFile

Puis la sous-clef "Shell"
HKEY_CLASSES_ROOTVBSFileShell

Toute action sur les fichiers à extension VBS sera définie par une
sous-sous-clef de nom quelconque
p.ex.
HKEY_CLASSES_ROOTVBSFileShellconsole
dont la valeur par défaut sera le LIBELLÉ de l'item apparaissant dans le
menu contextuel :
"Exécution dans une fenêtre de commandes"

NB: le nom "console" que j'ai adopté ici est totalement arbitraire et
uniquement INTERNE.
C'est un moyen mnémotechnique pour me rappeler le rôle de cet item de menu
contextuel.

J'aurais pu l'appeler aussi "R2D2", "007" ou
"parahydroxybenzoate-de-méthyle", mais le rappoort avec l'exécution
automatique de scripts dans une fenêtre de commandes eût été moins évident à
discerner!
;-)


Ensuite dans cette clef on crée une sous-clef nommée OBLIGATOIREMENT
"COMMAND"
HKEY_CLASSES_ROOTVBSFileShellconsolecommand
dont la valeur par défaut sera la commande à appliquer sur le fichier
sélectionné
wscript "i:vbsconsole.vbs" "%1"

La chaine %1 est un paramètre formel qui représente le nom complet du
fichier sélectionné
C'est le shell (explorer) qui se charge de remplacer automatiquement "%1"
par la chaine réelle.
Ne pas oublier d'encadrer par des guillemets, au cas où les chemins complets
:
- de l'exécutable (ou script)
- du fichier à traiter
contiennent des espaces.


NB: On peut ajouter AUTANT QUE L'ON VEUT de commandes associées...

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr

Avatar
Jean-Claude BELLAMY
Dans le message :,
Jean-Claude BELLAMY a pris la peine
d'écrire ce qui suit :
[...]
Dans ma réponse précédente, j'ai oublié un passage concernant le passage de

paramètres supplémentaires (en plus du nom de fichier)

1) Si ces paramètres sont toujours les mêmes,
il suffit tout bêtement de les insérer dans la commande
P.ex. la commande "Imprimer" de VBS (ou autre fichiers texte)
%SystemRoot%System32Notepad.exe /p %1

2) Si ces paramètres varient, et doivent être saisis
dans une boite de dialogue :
Il faut passer par un batch ou mieux un script VBS,
qui sera alors la commande exécutée sur le fichier.
P.ex. on créera un fichier batch "c:params.cmd"
contenant ceci :

@echo off
set /P Parms=Parametres supplementaires :
nom-de-la-commande %1 %Parms%

et dans la BDR on aura la commande suivante
"c:params.cmd" %1

Quand on choisira l'item correspondant, une fenêtre de commandes va
s'ouvrir, dans laquelle une question sera posée, demandant les paramètres à
transmettre.
Puis la commande finale sera exécutée, avec le fichier sélectionné + les
paramètres saisis.

Si le look de boite de dialogue VBS te plait davantage, inspire-toi de mon
script "CONSOLE.VBS"
http://www.bellamyjc.org/fr/explorer.html#runconsole

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP]
http://www.bellamyjc.org ou http://jc.bellamy.free.fr