Man kennt ja die anderen Tipps von hier, wo man erstmal zig APIs deklarieren muss, um Zugriff auf die Windows-Registry zu erhalten. Unser heutiger Tipp geht einen einfacheren Weg. Hierzu erstellen wir drei neue Prozeduren, eine zum Lesen von Registry-Werten, eine zum Schreiben und eine zum Löschen von Registryschlüssel. Diese drei prozeduren benutzen nicht das Windows-API, sondern Windows-Scripting-Host. Registrykey lesen ' Gibt den Wert des Schlüssels aus "Path" zurück Public Function RegRead(Path As String) As String Dim ws As Object On Error GoTo ErrHandler Set ws = CreateObject("WScript.Shell") RegRead = ws.RegRead(Path) Exit Function ErrHandler: RegRead = "" End Function Registrykey speichern ' Schreibt den Wert aus "Value" als den Typ aus "Typ" ' in den in "Path" angegebenen Schlüssel Public Function RegWrite(ByVal Path As String, _ ByVal Value As String, _ Optional ByVal Typ As String = "REG_SZ") As Boolean Dim ws As Object On Error Goto ErrHandler Set ws = CreateObject("WScript.Shell") ws.RegWrite Path, Value, Typ RegWrite = True Exit Function ErrHandler: RegWrite = False End Function Registrykey löschen ' Löscht den Schlüssel aus "Path" Public Function RegDelete(Path As String) As Boolean Dim ws As Object On Error Goto ErrHandler Set ws = CreateObject("WScript.Shell") ws.RegDelete Path RegDelete = True Exit Function ErrHandler: RegDelete = False End Function Nachfolgend ein kleines Beispielprogramm. Benötigt wird eine Form, 3 Buttons und eine Textbox. ' Lesen Private Sub Command1_Click() Dim Inhalt As String Inhalt = RegRead(Text1.Text) If Inhalt = "" Then MsgBox "Der Schlüssel existiert nicht!" Else MsgBox "Inhalt des Schlüssels: " & Inhalt End If End Sub ' Schreiben Private Sub Command2_Click() Dim sValue As String If MsgBox("Schlüssel überschreiben? " & _ "Der alte Wert geht dadurch verloren.", vbYesNo) = vbYes Then sValue = InputBox("Geben Sie den neuen Wert ein:") If RegWrite(Text1.Text, sValue) Then MsgBox "Neuer Wert wurde gespeichert." Else MsgBox "Fehler beim Speichern des Wertes." End If End If End Sub ' Löschen Private Sub Command3_Click() If MsgBox("Schlüssel wirklich Löschen?", vbYesNo) = vbYes Then If RegDelete(Text1.Text) Then MsgBox "Schlüssel wurde gelöscht." Else MsgBox "Schlüssel konnte nicht gelöscht werden!" End If End If End Sub Hinweis:
Beispiel für das Speichern eines Wertes unter "HKEY_CURRENT_USER\SOFTWARE\MySoftware\Test":
Dieser Tipp wurde bereits 105.630 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats Microsys Kramer Datum und Uhrzeit der letzten Anmeldung eines Benutzers ermitteln Dieser Tipp zeigt das Datum und die Uhrzeit der letzten Anmeldung an TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
|
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |
|||||||||||||||||


Registry lesen und schreiben ohne API


