2010-01-06 4 views
0

Si vous utilisez une application 32 bits sur une machine 64 bits (J'utilise Windows 7) et vous écrivez ce codeComment obtenir le vrai chemin vers une clé reg?

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 

donné un Progromatically RegistryKey comment puis-je travaille sur le vrai chemin dans le registre?

Répondre

1

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 qu'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 KEY_WOW64_64KEY flag.


MISE À JOUR: adressée dans .NET 4.0 avec RegistryKey.OpenBaseKey(). L'argument RegistryView vous permet de spécifier la vue souhaitée. Vous utiliseriez RegistryView.Registry64 dans ce cas.

Questions connexes