2015-03-20 17 views
5

Se non esisto, provo ad aggiungere una chiave al registro. Mentre eseguo il debug, tutto va bene. Il codice dovrebbe funzionare. Ma non riesco a trovare la chiave nell'editor del Registro di sistema. Hai qualche idea?Aggiungere la chiave al registro se non esiste

public void ConfigureWindowsRegistry() 
{ 
    var reg = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Office\\Outlook\\FormRegions\\tesssst", true); 
    if (reg == null) 
    { 
     reg = Registry.LocalMachine.CreateSubKey("Software\\Microsoft\\Office\\Outlook\\FormRegions\\tesssst"); 
    } 

    if (reg.GetValue("someKey") == null) 
    { 
      reg.SetValue("someKey", "someValue"); 
    } 
} 

risposta

7

Se si utilizza un sistema operativo a 64 bit, alcune chiavi del Registro di sistema vengono reindirizzate da WOW64. Ulteriori informazioni su questo argomento sono disponibili su MSDN, dovresti guardare sotto Wow6432Node e troverai la tua voce. Se si esegue il codice per la prima volta si creerà, su una macchina a 64 bit (ho provato a livello locale), ma questo articolo:

HKEY_LOCAL_MACHINE \ Software \ Wow6432Node \ Microsoft \ Office \ Outlook \ FormRegions \ tesssst

se si desidera accedere alla sezione 64 bit del registro di sistema si dovrebbe fare:

public void ConfigureWindowsRegistry() 
{ 
    RegistryKey localMachine = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64); //here you specify where exactly you want your entry 

    var reg = localMachine.OpenSubKey("Software\\Microsoft\\Office\\Outlook\\FormRegions\\tesssst",true); 
    if (reg == null) 
    { 
     reg = localMachine.CreateSubKey("Software\\Microsoft\\Office\\Outlook\\FormRegions\\tesssst"); 
    } 

    if (reg.GetValue("someKey") == null) 
    { 
     reg.SetValue("someKey", "someValue"); 
    } 
} 

l'esecuzione del codice di cui sopra metterà la chiave di registro nella sezione corretta ci si rivolge.

spero che sia d'aiuto.

Problemi correlati