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 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