2009-05-18 11 views
5

Ho le impostazioni dell'applicazione memorizzate nella branca HKEY_LOCAL_MACHINE \ SOFTWARE \ MyCompany. Le impostazioni devono essere uguali per diversi utenti e questo è il motivo per cui le impostazioni non sono in HKEY_CURRENT_USER. I valori di registro sono leggono solo durante l'uso dell'applicazione.Come leggere il ramo di registro HKEY_LOCAL_MACHINE in Vista?

Ora, in Windows Vista e causa di UAC non si può più utilizzare seguente codice per leggere i valori del Registro di sistema:

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

Come posso leggere i valori dal ramo LocalMachine nel mio codice (C#)?

risposta

7

Il problema è che si sta tentando di creare una chiave per non leggerla. Dovresti essere in grado di leggere i valori da HKLM bene su Vista se usi l'API appropriata.

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

Avviso il parametro falso in quanto sopra. Questo ha l'effetto di aprire la chiave in una modalità di sola lettura. Questa è l'impostazione predefinita per OpenSubKey ma preferisco essere esplicito (principalmente perché non riesco a ricordare l'impostazione predefinita).

Problemi correlati