2009-05-18 5 views
5

J'ai les paramètres d'application stockés sous HKEY_LOCAL_MACHINE \ SOFTWARE \ MyCompany branch. Les paramètres doivent être les mêmes pour différents utilisateurs et c'est la raison pour laquelle les paramètres ne sont pas sous HKEY_CURRENT_USER. Les valeurs de registre sont seulement lues pendant l'utilisation de l'application.Comment lire la branche de registre HKEY_LOCAL_MACHINE dans Vista?

Maintenant, dans Windows Vista et en raison de l'UAC vous ne pouvez pas utiliser plus de code ci-dessous pour lire les valeurs de registre:

RegistryKey myKey = Registry.LocalMachine.CreateSubKey 
     ("SOFTWARE\\MyCompany\\MyAppName"); 

Comment puis-je lire les valeurs de branche LocalMachine dans mon code (C#)?

Répondre

7

Le problème est que vous essayez de créer une clé ne pas le lire. Vous devriez être capable de lire les valeurs de HKLM très bien sur Vista si vous utilisez l'API appropriée.

RegistryKey myKey = Registry.LocalMachine.OpenSubKey(
    @"Software\MyCompany\MyAppName", 
    false); 

Notez le faux paramètre ci-dessus. Cela a pour effet d'ouvrir la clé en mode lecture seule. C'est le réglage par défaut pour OpenSubKey mais je préfère être explicite (principalement parce que je ne peux pas me souvenir de la valeur par défaut).

Questions connexes