Lance "regedit.exe" (soit par commande en tappant simplement "regedit", soit directement à l'adresse : C:\Windows\regedit.exe). Tu vas ainsi avoir accès à la base de registre Windows.
Toute modification du registre Windows est à faire avec la plus grande précaution. Il ne faut pas y toucher si on ne sait pas ce que l'on fait. Cela pourrait avoir de lourdes conséquences quant au bon fonctionnement du système.
Une fois regedit ouvert, à gauche tu vois une arborescence avec "Ordinateur" à la racine et quelques éléments commençant par "HKEY_".
Dans "HKEY_CLASSES_ROOT", tu vois au tout début les extensions des fichiers, par exemple un dossier nommé ".sln". Il contient un dossier nommé "OpenWithProgids". Une fois ce dernier dossier sélectionné, à droite tu vois différentes clés, notamment "VisualStudio.Launcher.sln".
Reviens dans "HKEY_CLASSES_ROOT" et cherches-y le dossier portant le nom "VisualStudio.Launcher.sln" (il se trouve ainsi à la même "profondeur" que le dossier ".sln"). Tu y vois un dossier "Shell" (nom relatif à l'invite de commandes), qui contient un dossier "Open", qui lui-même contient un dossier "Command". Ce dernier dossier contient une seule clé, dont la valeur est : "C:\Program Files\Common Files\Microsoft Shared\MSEnv\VSLauncher.exe" "%1".
Explications
Quand tu double-cliques sur un fichier toto.sln, Windows va regarder dans le registre, au niveau du dossier ".sln", dans la ruche "HKEY_CLASSES_ROOT" (le "h" vient de "hive" = "ruche" en anglais). Là, il apprend que les informations sont dans "VisualStudio.Launcher.sln". Il regarde la commande à exécuter et il voit la commande précédente. Le "%1" est l'argument envoyé au programme, ici il est remplacé par l'adresse du fichier à ouvrir. Ainsi, si tu cliques sur "D:\mySolution.sln", Windows démarre le programme "VSLauncher.exe" en lui envoyant en argument un tableau de string, dont la première valeur est ici "D:\mySolution.sln".
Premier test
Dans le registre, au même endroit que ".sln", crée une clé (clic-droit -> Nouveau -> Clé) que tu peux appeler ".myExtension" (juste pour tester). Crée une autre clé : "MyTestProgram.Launcher". Indique à la première clé la référence vers cette deuxième. Complète la deuxième avec l'adresse de ton programme et le tour est joué.
Dans ton programme, écris par exemple :
if (args.Length > 0)
{
Console.WriteLine("Fichier à ouvrir : {0}", args[0]);
}
Console.WriteLine("Appuyez sur une touche pour continuer...");
Console.Read();
Crée un fichier "toto.myExtension" et double-clique dessus : tu vois la console qui t'affiche l'adresse du fichier.
PS : ton tuto est super, il manque juste quelques astuces comme celle là ou encore le réseau mais c'est pas bien grave !
"Il est impossible pour un homme d'apprendre ce qu'il croit déjà connaître"
Comment lier un type de fichiers à un programme
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.