2011-08-16 4 views
1

J'essaie d'accéder à une clé de registre spécifique que je connais. Je l'utilise de cette façon:Accéder au registre en C#

RegistryKey rk = Registry.LocalMachine; 
RegistryKey sk1 = rk.OpenSubKey(KeyName,false); 

si je remplace 'KeyName' avec @ "Software \ Microsoft \ Windows \ CurrentVersion \ Run", par exemple, il fonctionne très bien.
si j'essaie un autre chemin que j'ai copié collé à partir de regedit par exmple @ "SOFTWARE \ ATI Technologies \ Install \ South Bridge \ ATI_AHCI_RAID" il retourne null.

Je suis workiung sur win7 64 bits avec un programme x86

Répondre

3

Dans Windows 64 bits (Windows 2003+, XP et versions ultérieures 64 bits), il y a une redirection de Registre transparent qui se passe pour fournir séparée logique vues pour les appels de registre 32 bits et 64 bits.

Lisez le lien ci-dessous pour plus d'informations; c'est une information importante à savoir.

Le redirecteur de Registre isole les applications 32 bits et 64 bits par fournissant des vues logiques distinctes de certaines parties du registre sur WOW64. Le redirecteur de registre intercepte les appels de registre 32 bits et 64 bits vers leurs vues de registre logiques respectives et les affecte à l'emplacement de registre physique correspondant. Le processus de redirection est transparent à l'application. Par conséquent, une application 32 bits peut accéder aux données de Registre comme si elle s'exécutait sur Windows 32 bits même si les données sont stockées dans un emplacement différent sur Windows 64 bits .

MSDN Registry Redirector

Questions connexes