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 <xref:Microsoft.Win32.Registry> und <xref:Microsoft.Win32.RegistryKey> im <xref:Microsoft.Win32>-Namespace von .NET Framework verwenden.

Schlüssel in der Registry-Klasse

Die <xref:Microsoft.Win32.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 <xref:Microsoft.Win32.Registry>-Klasse verfügbar gemacht werden, aufgelistet und beschrieben.

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

Es ist sicherer, Daten in den Schlüssel für den aktuellen Benutzer (<xref:Microsoft.Win32.Registry.CurrentUser>) statt in den Schlüssel für den lokalen Computer (<xref:Microsoft.Win32.Registry.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. <xref:Microsoft.Win32.RegistryKey.GetValue%2A>, 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

<xref:System.SystemException>
<xref:System.ApplicationException>
<xref:Microsoft.VisualBasic.MyServices.RegistryProxy>
Try...Catch...Finally-Anweisung
Lesen aus der und Schreiben in die Registrierung
Sicherheit und die Registrierung