2015-03-20 9 views
5

Próbuję dodać klucz do rejestru, jeśli nie istnieje. Podczas debugowania wszystko jest w porządku. Kod powinien działać. Ale nie mogę znaleźć klucza w edytorze rejestru. Masz jakiś pomysł?Dodaj klucz do rejestru, jeśli nie istnieje

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"); 
    } 
} 

Odpowiedz

7

Jeśli korzystasz z 64-bitowego systemu operacyjnego, niektóre klucze rejestru są przekierowywane przez WOW64. Więcej informacji na ten temat można znaleźć pod adresem MSDN, powinieneś zajrzeć pod Wow6432Node, a znajdziesz swój wpis. Jeśli wykonanie tego kodu po raz pierwszy go stworzy, na komputerze 64-bitowym (próbowałem go lokalnie), ten wpis:

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

jeśli chcesz uzyskać dostęp do sekcji 64 bitowego rejestru należy zrobić:

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"); 
    } 
} 

Wykonanie powyższego kodu będzie można umieścić klucz rejestru w odpowiedniej sekcji są kierowane.

nadzieję, że to pomaga.

Powiązane problemy