Comment puis-je obtenir le véritable chemin vers une clé reg?
-
18-09-2019 - |
Question
Si vous utilisez une application 32 bits sur une machine 64 bits (J'utilise Windows 7) et vous écrivez ce code
RegistryKey key = Registry.LocalMachine.OpenSubKey(@"Software\XXX")
il va vraiment obtenir la clé de
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\XXX
et non
HKEY_LOCAL_MACHINE\SOFTWARE\XXX
Progromatically donné une RegistryKey comment puis-je travaille sur le vrai chemin dans le registre?
La solution
Il est très bien le vrai chemin, une application 32 bits sera toujours accéder à la clé de Registre dans cette sous-clé. Obtenir la valeur d'une application 64 bits verrait est techniquement possible, mais pas avec .NET. Vous devrez P / Invoke RegOpenKeyEx () et al afin que vous pouvez spécifier le drapeau KEY_WOW64_64KEY.
Mise à jour: adresse dans .NET 4.0 avec RegistryKey.OpenBaseKey (). L'argument RegistryView vous permet de spécifier la vue que vous voulez. Vous utiliseriez RegistryView.Registry64 dans ce cas.
Autres conseils
Il est fonction de si oui ou non le programme a été compilé pour 32 ou 64 bits de Windows et si elle fonctionne sur 32 ou 64 bits de Windows. Voir ci-dessous si aide: