2016-07-20 13 views
1

Ich entwickle eine Windows-Anwendung mit vb.net. Jetzt möchte ich 7 Werte in der Registrierung HKEY_CURRENT_USER\SOFTWARE\MYAPP hinzufügen.Erstellen von 7 Registrierungswerten unter einem Registrierungsschlüssel ohne Wiederholung

Jeder Wert (von 7) sollte nur hinzugefügt werden, wenn er nicht im Unterschlüssel vorhanden ist. Am Ende möchte ich nur 7 unter MYAPP SUBKEY sehen. Wie mache ich das? Ich brauche deine Hilfe.

+0

ich VB.NET nicht, aber könnte mir vorstellen, es ist eine Funktion wie „keyexists“. Sie könnten 'Wenn nicht Keyexisten (' YourKey ') dann tun ...' Entweder den Schlüssel hinzufügen oder weitermachen. –

+0

Die Struktur der Windows-Registrierung ist, dass wir in einem Schlüssel einen Wert mit einem Wert haben. Und ich möchte programmgesteuert einen neuen Wert (nicht Schlüssel) mit einem anderen Wertname erstellen. – Chata

+0

Dasselbe sollte gelten, wenn valueexist ... usw. Dieser Link ist Delphi, aber es könnte Ihnen helfen. http://stackoverflow.com/questions/16938305/how-to-check-if-a-registry-key-exists –

Antwort

1

Sie können das GetValue eines RegistryKey Objekts verwenden und das Ergebnis testen, wenn Nothing dann der Wert nicht existiert.

Hier ist ein komplettes Beispiel, das Sie zum Arbeiten bringen sollte. Beachten Sie, dass Sie könnte Notwendigkeit Admin-Rechte Schlüssel und Werte zu schaffen, in Abhängigkeit von den Maschinen Berechtigungen:

Dim myAppKey = Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.CurrentUser, Microsoft.Win32.RegistryView.Default) 
    If myAppKey Is Nothing Then Throw New Exception("Failed to open registry") 

    Dim subKeyName = "SOFTWARE\MYAPP" 

    'attempt to open the subkey with write acces because we need this if we are creating values 
    Dim subKey = myAppKey.OpenSubKey(subKeyName, True) 
    If subKey Is Nothing Then 
     'create the sub key because it doesn't exist 
     myAppKey.CreateSubKey(subKeyName) 
     're open the new key 
     subKey = myAppKey.OpenSubKey(subKeyName, True) 
    End If 

    'create values in a loop for testing 
    For i = 0 To 6 
     If subKey.GetValue("Value" & i) Is Nothing Then 
      'value does not exist so create it 
      subKey.SetValue("Value" & i, i) 
     End If 
    Next 
+0

Matt, das funktioniert wie ein Zauber. Danke Ihnen allen für Ihre Hilfe. – Chata

+0

Gern geschehen - Bitte upvote auch, wenn diese Antwort Ihnen geholfen hat –