Lesen von der und Schreiben in die Registrierung mithilfe des Microsoft.Win32-Namespaces (Visual Basic)Reading from and Writing to the Registry Using the Microsoft.Win32 Namespace (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.NET Framework verwenden.Although My.Computer.Registry should cover your basic needs when programming against the registry, you can also use the Registry and RegistryKey classes in the Microsoft.Win32 namespace of the .NET Framework.NET Framework.

Schlüssel in der Registry-KlasseKeys in the Registry Class

Die Registry-Klasse stellt die Basisregistrierungsschlüssel bereit, die für den Zugriff auf Unterschlüssel und deren Werte verwendet werden können.The Registry class supplies the base registry keys that can be used to access subkeys and their values. Die Basisschlüssel selbst sind schreibgeschützt.The base keys themselves are read-only. In der folgenden Tabelle werden die sieben Schlüssel, die von der Registry-Klasse verfügbar gemacht werden, aufgelistet und beschrieben.The following table lists and describes the seven keys exposed by the Registry class.

KeyKey BeschreibungDescription
ClassesRoot Definiert die Typen von Dokumenten und die diesen Typen zugeordneten Eigenschaften.Defines the types of documents and the properties associated with those types.
CurrentConfig Enthält Informationen zur Hardwarekonfiguration, die nicht spezifisch sind.Contains hardware configuration information that is not user-specific.
CurrentUser Enthält Informationen über die aktuellen Benutzereinstellungen, z.B. Umgebungsvariablen.Contains information about the current user preferences, such as environmental variables.
DynData Enthält dynamische Registrierungsdaten, z.B. solche, die von virtuellen Gerätetreibern verwendet werden.Contains dynamic registry data, such as that used by Virtual Device Drivers.
LocalMachine Enthält fünf Unterschlüssel (Hardware, SAM, Security, Software und System), die die Konfigurationsdaten für den lokalen Computer enthalten.Contains five subkeys (Hardware, SAM, Security, Software, and System) that hold the configuration data for the local computer.
PerformanceData Enthält Informationen zur Leistung für Softwarekomponenten.Contains performance information for software components.
Users Enthält Informationen zu den Standardeinstellungen für Benutzer.Contains information about the default user preferences.

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.It is more secure to write data to the current user (CurrentUser) than to the local computer (LocalMachine). 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.A condition that's typically referred to as "squatting" occurs when the key you are creating was previously created by another, possibly malicious, process. Um dies zu vermeiden, verwenden Sie eine Methode, z.B. GetValue, die Nothing zurückgibt, wenn der Schlüssel nicht bereits vorhanden ist.To prevent this from occurring, use a method, such as GetValue, that returns Nothing if the key does not already exist.

Lesen eines Werts aus der RegistrierungReading a Value from the Registry

Der folgende Code zeigt, wie eine Zeichenfolge aus HKEY_CURRENT_USER gelesen wird.The following code shows how to read a string from HKEY_CURRENT_USER.

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.The following code reads, increments, and then writes a string to 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 auchSee Also

SystemException
ApplicationException
RegistryProxy
Try...Catch...Finally-AnweisungTry...Catch...Finally Statement
Lesen aus der und Schreiben in die RegistrierungReading from and Writing to the Registry
Sicherheit und die RegistrierungSecurity and the Registry