Freigeben über


Vorgehensweise: Lesen eines Werts aus einem Registrierungsschlüssel in Visual Basic

Die GetValue Methode des My.Computer.Registry Objekts kann zum Lesen von Werten in der Windows-Registrierung verwendet werden.

Wenn der Schlüssel "Software\MyApp" im folgenden Beispiel nicht vorhanden ist, wird eine Ausnahme ausgelöst. Wenn der ValueName, im folgenden Beispiel "Name", 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 der Code die Registry aus einer Webanwendung liest, wird der aktuelle Benutzer durch die Authentifizierung und den Identitätswechsel bestimmt, die in der Webanwendung ausgeführt werden.

So lesen Sie einen Wert aus einem Registrierungsschlüssel

  • Verwenden Sie die GetValue-Methode, um einen Wert aus dem Registrierungsschlüssel zu lesen, indem Sie den Pfad und den Namen angeben. Im folgenden Beispiel wird der Wert Name von HKEY_CURRENT_USER\Software\MyApp gelesen und in einem Meldungsfeld angezeigt.

    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. In der Codeausschnittauswahl befindet sie sich in der Windows-Betriebssystemregistrierung>. Weitere Informationen finden Sie unter Codeschnipsel.

So bestimmen Sie, 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
    

Robuste Programmierung

Die Registrierung enthält Schlüssel auf oberster 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 verwendet, die von allen Benutzern verwendet werden, während HKEY_CURRENT_USER zum Speichern von Daten verwendet wird, die für einen einzelnen Benutzer spezifisch sind.

Die folgenden Bedingungen können zu einer Ausnahme führen:

.NET Framework-Sicherheit

Um diesen Prozess auszuführen, erfordert Ihre Assembly eine Berechtigungsstufe, die von der RegistryPermission Klasse gewährt wird. Wenn Sie in einem teilweise vertrauenswürdigen Kontext ausgeführt werden, kann der Prozess eine Ausnahme aufgrund unzureichender Berechtigungen auslösen. Ebenso muss der Benutzer über die richtigen ACLs zum Erstellen oder Bearbeiten von Einstellungen verfügen. Eine lokale Anwendung, die über die Sicherheitsberechtigung für den Codezugriff verfügt, verfügt möglicherweise nicht über die Betriebssystemberechtigung. Weitere Informationen finden Sie unter Code Access Security Basics.

Hinweis

Code Access Security (CAS) 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 sollten alternative Mittel zum Ausführen von Sicherheitsaufgaben suchen.

Siehe auch