2016-05-13 16 views
1

Ich habe einen Schlüssel des Typs Zeichenfolge erstellt und nannte es mykey in der Registrierung unter HKEY_USERS\.DEFAULT mit dem Wert 1234 festgelegt.So lesen Sie den Registrierungswert korrekt in C#

Ich habe eine Windows-Formular-Anwendung mit einer Schaltfläche darauf.

Ich möchte den Wert von mykey in einer MessageBox sehen, wenn die Taste gedrückt wird. Wie kann ich das erreichen?

Das habe ich gemacht. Aber dieser Code zeigt nur HKEY_USERS in der MessageBox und nicht den Wert mykey.

private void button1_Click(object sender, EventArgs e) 
    { 
     RegistryKey rk = Registry.Users; 
     rk.GetValue("HKEY_USERS\\.DEFAULT\\mykey"); 

     if (rk == null) 
      MessageBox.Show("null"); 
     else 
      MessageBox.Show(rk.ToString()); 
    } 
+0

Warum ist das ein Dupl icate @ PedroG.Dias –

+0

@ PedroG.Dias Wie ist dieser Link sogar eine Antwort ?! Ich verstehe nicht. Meine Frage befindet sich im Kontext, während der Link, den Sie angegeben haben - der übrigens auf einen anderen Link verweist - nicht. Es hat nicht einmal ein richtiges Beispiel. – goofle

+0

Entschuldigung, es zu entfernen –

Antwort

1

Sie angegeben haben User zweimal, aber Sie haben zu tun, dass jeder davon, hier ist die sichere Art und Weise zu lesen Registrierungswert

private void button1_Click(object sender, EventArgs e) 
    { 
     using (RegistryKey key = Registry.Users.OpenSubKey(".DEFAULT")) 
     { 
      if (key != null) 
      { 
       Object val = key.GetValue("mykey"); 
       if (val != null) 
       { 
        MessageBox.Show(val.ToString()); 
       } 
       else 
       { 
        MessageBox.Show("Null"); 
       } 
      } 

     } 
    } 
1

Sie geben den Users Teil zweimal an. Zuerst als Struktur der Registrierung und dann als Registrierungsschlüssel.

Sie können es von diesem entfernen:

rk.GetValue(@".DEFAULT\mykey"); 

Oder Sie sollten ohne Auswahl eines Bienenstock mit der Registrierung beginnen:

Registry.GetValue(@"HKEY_USERS\.DEFAULT\mykey");