2015-03-20 4 views
5

Ich versuche, einen Schlüssel zur Registrierung hinzuzufügen, wenn nicht vorhanden. Während ich debugge alles ist in Ordnung. Code sollte funktionieren. Aber ich kann den Schlüssel im Registrierungseditor nicht finden. Hast du irgendeine Idee?Fügen Sie Schlüssel zur Registrierung hinzu, wenn nicht vorhanden

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

Antwort

7

Wenn Sie ein 64-Bit-Betriebssystem verwenden, werden einige Registrierungsschlüssel von WOW64 umgeleitet. Weitere Informationen zu diesem Thema finden Sie unter MSDN, Sie sollten unter Wow6432Node suchen und Sie werden Ihren Eintrag finden. Wenn Sie diesen Code das erste Mal ausführen, wird es, auf einem 64-Bit-Computer erstellen (Ich habe versucht, es vor Ort), diesen Eintrag:

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

, wenn Sie Ihr 64-Bit-Abschnitt der Registrierung zugreifen möchten Sie tun sollten:

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

Ausführen des Codes wird über den Registrierungsschlüssel in der richtigen Abschnitt setzen Sie zielen.

hoffe es hilft.