Bonjour tout le monde.
Je suis en train de créer un fichier d'installation sous Windows d'un logiciel que je viens de développer enn Java.
Pour cela j'utilise Wise, pour lequel j'ai écrit un script (copie des fichiers, menu démarrer...).
Or, mon logiciel peut lire des fichiers, et j'aimerai automatiser l'ouverture de mon fichier sur le double-clic depuis les fichiers qui lui sont spécifiques (extension ".zkv") ou depuis un "clic droit->Ouvrir avec..." sur les fichiers qu'il peut lire mais qui ne lui sont pas "réservés" (extensions ".txt", ".xls", ".xml"...).
Je me doute que c'est dans le registre qu'il faut que j'aille créer quelques entrées, et/ou en modifier quelques unes, mais j'ai un tout petit peu du mal à obtenir précisément ce que je veux.
Alors voici ce que j'ai, ce que j'arrive à faire, et si vous pouvez me guider vers quelque chose d'efficace et qui marche, j'en serai ravi.
Si j'ai bien compris, avec cette clé, je demande de faire ce qu'il y a à l'adresse "MonSoft" dans la base de registre, quand je recoontre ce type d'extension. Elle est donc indispensable pour ce que je veux faire. PS: Si ici je mets TextPad, par exemple, au lieu de MonSoft, alors je lance TextPad et j'ouvre directement mon fichier dans ce dernier. J'en conclus qu'il faut que je "clone" les instructions TextPad en instructions MonSoft pour obtenir le comportement que je cherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.zkv] @="MonSoft"
La c'est ce que j'ai pour TextPad, égèrement modifié comme vous pouvez le voir. Manque de bol, mon application est Java... donc il faut que je passe par javaw. J'imagine que c'est déjà subsidiaire, car il me suffit de remplacer la ligne par quelque chose du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MonSoft.tws\DefaultIcon] @="\"C:\\Program Files\\MaSociete\\MonSoft.exe\",-2000" [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\MonSoft.tws\shell\open\command] @="\"C:\\Program Files\\MaSociete\\MonSoft.exe\" -s"Si j'ai bien compris, c'est la ligne de commande qui va être exécutée suite à la résolution de mon adressage "MonSoft" ci-dessus (première clé que je donne). Il me faut donc encore réaliser cette résolution. Et c'est là ou j'ai un problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part @=javaw " -jar c:\\Program Files\\MaSociete\\MonSoft.jar" -s"
Mais ici, je ne comprends pas tout (déjà que je suis loin d'être sûr d'avoir tout bien compris avant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 [HKEY_USERS\S-1-5-51-3755963761-1932595355-744259898-1009\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.zkv\OpenWithList] "a"="MonSoft.exe" "MRUList"="a" [HKEY_USERS\S-1-5-51-3755963761-1932595355-744259898-1009\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.zkv\OpenWithProgids] "MonSoft"=hex(0): [HKEY_USERS\S-1-5-51-3755963761-1932595355-744259898-1009\Software\Microsoft\Windows\ShellNoRoam\MUICache] javaw " -jar c:\\Program Files\\MaSociete\\MonSoft.jar"="MonSoft"
Dans la première de ces trois clés, le a correspond au libellé de la clé, j'ai du mal à voir le fonctionnement/utilité du MRUList.
Dans la seconde des trois clés, je ne vois absolument pas à quoi peut correspondre le hex(0) -récupéré lui aussi de textPad.
Je ne vois pas non plus ce que veux dire le Progids dans "OpenWithProgids"...
Enfin, j'ai l'impression de faire un doublon avec la troisième clé, par rapport à celle définit dans le HKey_Local_Machine/.../shell/.../command. Quel est le rôle de chacune ?
Je ne vois pas non plus comment je peux récupérer l'équivalent de mon "S-1-5-51-3755963761-1932595355-744259898-1009" sur chaque des machines, car j'imagine facilement cette valeur comme étant différente d'une machine à l'autre...
Enfin, je ne sais pas du tout si je pars dans le bon sens, si j'utilise la bonne démarche et si je n'oublie rien dans cette démarche.
Voilà. J'espère ne pas être trop confus !
PS: javaw est un "adressage" connu par mon système, je pense donc pouvoir l'utiliser directement...
Partager