Comment puis-je changer le programme par défaut (aka assocation de fichier) lorsque le programme a été déplacé?

Dans Windows 7, si j'ai déjà associé un programme, disons Notepad2.exe , avec un type de fichier, disons .txt puis déplace le chemin vers Notepad2.exe (p. Ex., En déplaçant le dossier) casse l'association. Le problème que j'ai, c'est que je ne vois pas un moyen de réparer l'association.

Les méthodes normales de choix de l'association de type fichier, en cliquant avec le bouton droit de la souris sur> les propriétés ou via le panneau de contrôle, ne fonctionnent pas. Lorsque vous atteignez la fenêtre "Choisir le programme que vous souhaitez utiliser pour ouvrir ce fichier", vous pouvez essayer de naviguer pour le .exe vous voulez, mais après le pointer vers le nouveau chemin, le programme Notepad2.exe ne sera en fait pas là quand Vous revenez à la fenêtre "Choisir le programme que vous souhaitez utiliser pour ouvrir ce fichier:".

Si vous renommez Notepad2.exe à autre chose, comme Notepad2a.exe vous pouvez l'associer normalement. Donc, apparemment, le problème était que Windows suppose que le nom de .exe identifie le programme. Comme il se souvient évidemment de l'ancien chemin d'accès à Notepad2.exe on pourrait interpréter ce comportement comme se plaignant silencieusement qu'il ne veut pas se souvenir de deux Notepad2.exe s avec des chemins différents.

En utilisant le registre, j'ai essayé de supprimer les associations restantes à Notepad2.exe (par exemple, en utilisant cette réponse https://superuser.com/a/49617/223560 ). J'ai également ajusté l'entrée de registre pour la liste MRU pour en supprimer la mention. Mais cela ne suffisait pas pour que Windows "oublie" à ce sujet. Comme il s'agit d'une application portable, il n'y a pas de programme de désinstallation pour aider Windows à l'oublier.

Existe-t-il un moyen de réparer ce désordre? La modification du nom de Notepad2.exe ou la création d'une 2ème copie / raccourci avec un nom différent ne sont pas une solution acceptable pour moi. Je veux que cela fonctionne comme il le devrait normalement.

Modifier:
Pousser autour du registre donne des indices. Les clés de registre sous OpenWithList contiennent des clés avec des valeurs comme Notepad2.exe — juste le nom et non le chemin. Dans le registre sous UserChoice il existe une clé Progid avec la valeur Applications\Notepad2.exe . Cela ne ressemble pas à un chemin, et je ne sais pas comment Windows décide quel chemin correspond.

Je l'ai trouvé:

HKEY_CLASSES_ROOT\Applications\Notepad2.exe\shell\open\command

Modifiez cette clé sur le nouveau chemin.

Je réparerais ceci en utilisant le registre.

Nous commençons par localiser le type de fichier en question

 HKEY_CLASSES_ROOT\.txt 

En regardant cette touche, vous verrez qu'elle est liée à une autre clé

 HKEY_CLASSES_ROOT\txtfile 

Suivez un peu plus loin et vous verrez la clé qui contrôle le programme qui s'ouvre

 HKEY_CLASSES_ROOT\txtfile\shell\open\command 

Exemple