Gewusst wie: Lesen eines Werts aus einem Registrierungsschlüssel in Visual Basic
Die GetValue
-Methode des My.Computer.Registry
-Objekts kann verwendet werden, um Werte in der Windows-Registrierung zu lesen.
Wenn der Schlüssel („Software\MyApp“ im folgenden Beispiel) nicht vorhanden ist, wird eine Ausnahme ausgelöst. Wenn der ValueName
(„Name“ im folgenden Beispiel) nicht vorhanden ist, wird Nothing
zurückgegeben.
Die GetValue
-Methode kann auch verwendet werden, um zu bestimmen, ob ein bestimmter Wert in einem bestimmten Registrierungsschlüssel vorhanden ist.
Wenn Code aus einer Webanwendung die Registrierung liest, wird der aktuelle Benutzer durch die Authentifizierung und den Identitätswechsel bestimmt, die in der Webanwendung implementiert sind.
Lesen eines Werts aus einem Registrierungsschlüssel
Verwenden Sie die
GetValue
-Methode, und geben Sie den Pfad und Namen an, um einen Wert aus dem Registrierungsschlüssel zu lesen. Das folgende Beispiel liest den WertName
ausHKEY_CURRENT_USER\Software\MyApp
und zeigt ihn in einem Nachrichtenfeld an.Dim readValue = My.Computer.Registry.GetValue( "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing) MsgBox("The value is " & readValue)
Dieses Codebeispiel ist auch als IntelliSense-Codeausschnitt verfügbar. Er befindet sich in der Codeschnipselauswahl unter Windows Betriebssystem > Registrierung. Weitere Informationen finden Sie unter Codeausschnitte.
Bestimmen, ob ein Wert in einem Registrierungsschlüssel vorhanden ist
Verwenden Sie die
GetValue
-Methode, um den Wert abzurufen. Der folgende Code überprüft, ob der Wert vorhanden ist, und gibt eine Meldung zurück, wenn dies nicht der Fall ist.If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp", "TestValue", Nothing) Is Nothing Then MsgBox("Value does not exist.") End If
Stabile Programmierung
Die Registrierung enthält Schlüssel der obersten Ebene oder Stammschlüssel, die zum Speichern von Daten verwendet werden. Beispielsweise wird der HKEY_LOCAL_MACHINE-Stammschlüssel zum Speichern von Einstellungen auf Computerebene genutzt, die von allen Benutzern verwendet werden, während HKEY_CURRENT_USER zum Speichern von Daten genutzt wird, die spezifisch für einen einzelnen Benutzer sind.
Die folgenden Bedingungen können einen Ausnahmefehler verursachen:
Der Name des Schlüssels lautet
Nothing
(ArgumentNullException).Der Benutzer ist zum Lesen von Registrierungsschlüsseln nicht berechtigt (SecurityException).
Der Name des Schlüssels überschreitet das Limit von 255 Zeichen (ArgumentException).
.NET Framework-Sicherheit
Die Assembly benötigt zum Ausführen dieses Prozesses eine von der RegistryPermission-Klasse gewährte Berechtigungsebene. Wenn Sie in einem teilweise vertrauenswürdigen Kontext arbeiten, kann der Vorgang möglicherweise aufgrund fehlender Berechtigungen eine Ausnahme auslösen. Ebenso muss der Benutzer die richtigen Zugriffssteuerungslisten zum Erstellen von oder Schreiben auf Einstellungen verfügen. Beispielsweise besitzt eine lokale Anwendung, die die Sicherheitsberechtigung für den Codezugriff besitzt, möglicherweise keine Betriebssystemberechtigung. Weitere Informationen finden Sie unter Code Access Security Basics.
Hinweis
Die Codezugriffssicherheit (CAS, Code Access Security) ist in allen Versionen von .NET Framework und .NET veraltet. Aktuelle Versionen von .NET berücksichtigen keine CAS-Anmerkungen und erzeugen Fehler, wenn CAS-bezogene APIs verwendet werden. Entwickler*innen sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.