vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: COM/OLE/Registry/DLL · Windows-Registry   |   VB-Versionen: VB4, VB5, VB614.11.03
Registry lesen und schreiben ohne API

Wie man ohne das Windows-API Werte aus der Registry lesen, löschen oder neue Werte speichern kann, erfahren Sie mit diesem Tipp.

Autor:   Timon RappBewertung:     [ Jetzt bewerten ]Views:  103.325 
www.todbert.forbidden.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

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.
Die Textbox dient hierbei zur Eingabe des Registry-Pfades.

 ' 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:
Folgende "Kürzel" sind in der Pfadangabe zu verwenden:

  • HKLM\: HKEY_LOCAL_MACHINE
  • HKCU\: HKEY_CURRENT_USER

Beispiel für das Speichern eines Wertes unter "HKEY_CURRENT_USER\SOFTWARE\MySoftware\Test":

RegWrite "HKCU\SOFTWARE\MySoftware\Test", "Neuer Wert"

Dieser Tipp wurde bereits 103.325 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (8 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(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.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
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.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel