Windows 7 fichier de l'extension de l'association

Je me réfère spécifiquement pour windows 7.

J'ai un code qui associe une certaine extension, à ma demande, tel que proposé par webJose sur la page suivante:
Quelles clés de registre sont responsables de l'extension de fichier de l'association?
(Cependant j'ai correctement écrire à la clé HKEY_CURRENT_USER\Software\Classes au lieu de HKEY_CLASSES_ROOT comme l'a suggéré)

Les travaux ci-dessus au départ, ou si il n'y a pas d'autres programmes associés avec l'extension. Cependant, après l'aide de Windows 7 intégré dans "Choisir le programme par défaut..." (se trouve dans le fichier, faites un clic droit menu contextuel "Ouvrir avec"), il ré-associe l'extension avec ce nouveau programme vous choisissez.

Ce qui arrive à ce point, c'est que "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\\UserChoice" est remplacé par le système, et si le nouveau programme sélectionné prend le dessus.

Exécute le code ci-dessus, de reprendre le contrôle de l'extension ne fonctionnera pas. La seule façon de reprendre le contrôle, soit par:

  1. Édition de la UserChoice -> Progid valeur, qui n'est pas autorisé (ni par programmation ni à l'aide de regedit.exe - accès refusé).
  2. Ou la suppression de la UserChoice de la valeur et de s'assurer que votre application est le premier de la valeur MRUList sous \OpenWithList (ceci peut être réalisé à l'aide de regedit.exe mais pas par programme)

Ma question est: Est-il possible d'obtenir par programmation? Ce registre les valeurs peuvent être modifiées à reprendre le contrôle de la prolongation, après est associé avec un autre programme?

Je sais qu'il peut sembler évident que si un utilisateur par le biais de l'explorateur de jeux de l'application associée à l'extension, qu'il serait tenu de le faire de la même façon pour ré-associer l'extension à une autre application.

Le problème cependant est que j'ai un bouton dans mon application qui utilise le code mentionné ci-dessus pour vérifier association de l'extension de ma demande. Malheureusement, avec la situation ci-dessus, mon application affiche un message confirmant que l'extension est déjà associé avec succès lors de ses pas! Donc, il y a un moyen de contourner cela?

OriginalL'auteur Tamer | 2010-09-01