Gewusst wie: Erstellen von Registrierungsschlüsseln und Festlegen von deren Werten in Visual Basic
Die CreateSubKey
-Methode des My.Computer.Registry
-Objekts kann verwendet werden, um einen Registrierungsschlüssel zu erstellen.
Prozedur
Erstellen eines Registrierungsschlüssels
Verwenden Sie die
CreateSubKey
-Methode, geben sie dabei an, unter welcher Struktur der Schlüssel platziert werden soll sowie den Namen des Schlüssels. Der ParameterSubkey
unterscheidet nicht zwischen Groß- und Kleinschreibung. Dieses Beispiel erstellt den RegistrierungsschlüsselMyTestKey
unter HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
So erstellen Sie einen Registrierungsschlüssel und legen einen Wert darin fest
Verwenden Sie die
CreateSubkey
-Methode, geben sie dabei an, unter welcher Struktur der Schlüssel platziert werden soll sowie den Namen des Schlüssels. Dieses Beispiel erstellt den RegistrierungsschlüsselMyTestKey
unter HKEY_CURRENT_USER.My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Legen Sie den Wert mit der
SetValue
-Methode fest. Im folgenden Beispiel wird der Zeichenfolgenwert festgelegt. „MyTestKeyValue“ zu „Dies ist ein Testwert“.My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", "MyTestKeyValue", "This is a test value.")
Beispiel
Dieses Beispiel erstellt den Registrierungsschlüssel MyTestKey
unter HKEY_CURRENT_USER und legt den Zeichenfolgenwert MyTestKeyValue
auf This is a test value
fest.
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value.
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey",
"MyTestKeyValue", "This is a test value.")
Stabile Programmierung
Untersuchen Sie die Registrierungsstruktur, um eine adäquate Position für den Schlüssel zu ermitteln. Sie können beispielsweise den Schlüssel HKEY_CURRENT_USER\Software des aktuellen Benutzers öffnen und einen Schlüssel mit dem Namen Ihres Unternehmens erstellen. Anschließend fügen Sie die Registrierungswerte dem Schlüssel für das Unternehmen hinzu.
Wenn Sie die Registrierung von einer Webanwendung lesen, hängt der aktuelle Benutzer von der Authentifizierung und dem Identitätswechsel ab, die in der Webanwendung implementiert sind.
Es ist sicherer, die Daten in den Benutzerordner (CurrentUser) anstatt auf den lokalen Computer (LocalMachine) zu schreiben.
Wenn Sie einen Registrierungswert erstellen, müssen Sie festlegen, was geschehen soll, wenn der Wert bereits vorhanden ist. Möglicherweise wurde der Wert bereits von einem bösartigen Prozess erstellt, der nun darauf zugreifen kann. Wenn Sie dem Registrierungswert Daten hinzufügen, kann der andere Prozess darauf zugreifen. Um dies zu verhindern, verwenden Sie die GetValue-Methode. Die Methode gibt Nothing
zurück, wenn der Schlüssel noch nicht vorhanden ist.
Es ist nicht sicher, geheime Daten wie Kennwörter in der Registrierung als Klartext zu speichern. Dies gilt auch, wenn der Registrierungsschlüssel durch Zugriffssteuerungslisten (ACLs) geschützt ist.
Die folgenden Bedingungen können einen Ausnahmefehler verursachen:
Der Name des Schlüssels lautet
Nothing
(ArgumentNullException).Der Benutzer ist nicht zum Erstellen von Registrierungsschlüsseln berechtigt (SecurityException).
Der Name des Schlüssels überschreitet das Limit von 255 Zeichen (ArgumentException).
Der Schlüssel ist geschlossen (IOException).
Der Registrierungsschlüssel ist schreibgeschützt (UnauthorizedAccessException).
.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.