Freigeben über


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

Auch wenn My.Computer.Registry Ihre grundlegenden Anforderungen beim Programmieren mit der Registrierung abdecken sollten, können Sie auch die Klassen Registry und RegistryKey im Namespace Microsoft.Win32 von .NET 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 sind die sieben Schlüssel aufgeführt und beschrieben, die von der Registry Klasse verfügbar gemacht werden.

Schlüssel Beschreibung
ClassesRoot Definiert die Typen von Dokumenten und die Eigenschaften, die diesen Typen zugeordnet sind.
CurrentConfig Enthält Hardwarekonfigurationsinformationen, die nicht benutzerspezifisch sind.
CurrentUser Enthält Informationen zu den aktuellen Benutzereinstellungen, z. B. Umgebungsvariablen.
DynData Enthält dynamische Registrierungsdaten, z. B. die von virtuellen Gerätetreibern verwendet werden.
LocalMachine Enthält fünf Unterschlüssel (Hardware, SAM, Sicherheit, Software und System), die die Konfigurationsdaten für den lokalen Computer enthalten.
PerformanceData Enthält Leistungsinformationen für Softwarekomponenten.
Users Enthält Informationen zu den Standardbenutzereinstellungen.

Von Bedeutung

Es ist sicherer, Daten in den aktuellen Benutzer (CurrentUser) zu schreiben, als auf den lokalen Computer (LocalMachine). Eine Situation, die in der Regel als "Squatting" bezeichnet wird, tritt auf, wenn der Schlüssel, den Sie erstellen, zuvor durch einen 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, inkrementiert 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