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 31.036 mal aufgerufen.
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv (einschl. Beispielprojekt!) Ein absolutes Muss - Mehr als 650 MByte geballtes Wissen! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - Online-Update-Funktion u.v.m. |
sevOutBar 3.0 ![]() Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. Buchempfehlung Tipp des Monats Dieter Otter Snapshot einer Webseite erstellen Mit dieser Funktion lässt sich ein Snapshot einer Webseite erstellen, die aktuell im WebBrowser-Control angezeigt wird. Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
|
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



