Lesen von der und Schreiben in die Registrierung mithilfe des Microsoft.Win32-Namespaces (Visual Basic)

Obwohl My.Computer.Registry alle Ihre Basisanforderungen beim Programmieren der Registrierung abdecken soll, können Sie alternativ die Klassen Registry und RegistryKey im Microsoft.Win32-Namespace von .NET Framework verwenden.

Schlüssel in der Registry-Klasse

Die Registry-Klasse stellt die Basisregistrierungsschlüssel bereit, die für den Zugriff auf Unterschlüssel und deren Werte verwendet werden können. Die Basisschlüssel selbst sind schreibgeschützt. In der folgenden Tabelle werden die sieben Schlüssel, die von der Registry-Klasse verfügbar gemacht werden, aufgelistet und beschrieben.

Key Beschreibung
ClassesRoot Definiert die Typen von Dokumenten und die diesen Typen zugeordneten Eigenschaften.
CurrentConfig Enthält Informationen zur Hardwarekonfiguration, die nicht spezifisch sind.
CurrentUser Enthält Informationen über die aktuellen Benutzereinstellungen, z.B. Umgebungsvariablen.
DynData Enthält dynamische Registrierungsdaten, z.B. solche, die von virtuellen Gerätetreibern verwendet werden.
LocalMachine Enthält fünf Unterschlüssel (Hardware, SAM, Security, Software und System), die die Konfigurationsdaten für den lokalen Computer enthalten.
PerformanceData Enthält Informationen zur Leistung für Softwarekomponenten.
Users Enthält Informationen zu den Standardeinstellungen für Benutzer.
Wichtig

Es ist sicherer, Daten in den Schlüssel für den aktuellen Benutzer (CurrentUser) statt in den Schlüssel für den lokalen Computer (LocalMachine) zu schreiben. Eine Bedingung, die in der Regel als „squatting“ bezeichnet wird, tritt auf, wenn der Schlüssel, den Sie erstellen, zuvor von einem anderen, möglicherweise böswilligen Prozess erstellt wurde. Um dies zu vermeiden, verwenden Sie eine Methode, z.B. GetValue, die Nothing zurückgibt, wenn der Schlüssel nicht bereits vorhanden ist.

Lesen eines Werts aus der Registrierung

Der folgende Code zeigt, wie eine Zeichenfolge aus HKEY_CURRENT_USER gelesen wird.

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

Der folgende Code liest, erhöht, und schreibt dann eine Zeichenfolge in HKEY_CURRENT_USER.

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

Siehe auch

SystemException
ApplicationException
RegistryProxy
Try...Catch...Finally-Anweisung
Lesen aus der und Schreiben in die Registrierung
Sicherheit und die Registrierung