vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2015
 
zurück
Rubrik: COM/OLE/Registry/DLL · Windows-Registry   |   VB-Versionen: VB5, VB610.06.02
Registry mit dem WSHOM.OCX nutzen

Schreiben und Lesen in der Registry unter Verwendung des "Windows Script Host Object Model".

Autor:   Thomas DemmlerBewertung:     [ Jetzt bewerten ]Views:  13.504 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise über 100,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 455,- EUR statt 569,- EUR
  • sevDTA 2.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 18,70 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 58,70 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    Das Vorgehen des Tipps  Registry im Griff bringt scheinbar einige Probleme beim Speichern eines DWORD-Wertes.

    Folgende Möglichkeit macht keine Schwierigkeiten:

    1. Verweis (nicht als Komponente!) auf wshom.ocx im System-Verzeichnis ("Windows Script Host Object Model")
    2. nachfolgenden Code in ein Modul einfügen

    ' Enum der Wert-Typen (erweiterbar)
    Public Enum eREG_TYP
      iREG_SZ = 1
      iREG_BINARY = 2
      iREG_DWORD = 3
    End Enum
     
    ' Enum der Registry-Zweige
    Public Enum eREG_KEY
      iHKEY_CURRENT_USER = 1
      iHKEY_LOCAL_MACHINE = 2
      iHKEY_CLASSES_ROOT = 3
      iHKEY_USERS = 4
      iHKEY_CURRENT_CONFIG = 5
    End Enum

    Wert in die Registry schreiben

    ' Prozedur zum Schreiben von Werten in die Registry
    ' bei nicht vorhandenen Schlüsselnm werden diese
    ' automatisch angelegt
    Public Sub gRegistry_Write(iREG_KEY As eREG_KEY, _
      ByVal sKey As String, _
      ByVal sEntry As String, _
      ByVal varValue As Variant, _
      Optional ByVal iREG_TYP As eREG_TYP = iREG_SZ)
     
      Dim oWshShell As New WshShell
      Dim sREG_TYP As String
      Dim sREG_KEY As String
     
      sREG_TYP = pTypToString(iREG_TYP)
      sREG_KEY = pKeyToString(iREG_KEY)
     
      ' Der Methode "RegWrite" werden nun der gewünschte
      ' Schlüssel, der Wert und optional der Typ des
      ' Wertes übergeben ... schon fertig :-)
      oWshShell.RegWrite sREG_KEY & sKey & "\" & sEntry, _
        varValue, sREG_TYP
    End Sub

    Wert aus Registry lesen

    ' Prozedur zum Lesen von Werten aus der Registry
    Public Function gRegistry_Read(iREG_KEY As eREG_KEY, _
      ByVal sKey As String, _
      ByVal sEntry As String) As Variant
     
      Dim oWshShell As New WshShell
      Dim sREG_KEY As String
     
      sREG_KEY = pKeyToString(iREG_KEY)
     
      ' Fehlerbehandlung aktivieren (falls Schlüssel
      ' / Eintrag nicht existsiert)
      On Local Error Resume Next
     
      ' Der Methode "RegRead" wird nun der gewünschte
      ' Schlüssel übergeben ... schon fertig :-)
      gRegistry_Read = oWshShell.RegRead(sREG_KEY & sKey & _
        "\" & sEntry)
     
      ' Fehlerbehandlung wieder ausschalten
      On Local Error GoTo 0
    End Function

    Wert aus Registry löschen

    ' Prozedur zum Löschen von Werten aus der Registry
    Public Sub gRegistry_Delete(iREG_KEY As eREG_KEY, _
      ByVal sKey As String, _
      ByVal sEntry As String)
     
      Dim oWshShell As New WshShell
      Dim sREG_KEY As String
     
      sREG_KEY = pKeyToString(iREG_KEY)
     
      ' Fehlerbehandlung aktivieren (falls Schlüssel
      ' / Eintrag nicht existsiert)
      On Local Error Resume Next
     
      ' Der Methode "RegDelete" wird nun der gewünschte
      ' Schlüssel übergeben ... schon fertig :-)
      oWshShell.RegDelete sREG_KEY & sKey & "\" & sEntry
     
      ' Fehlerbehandlung wieder ausschalten
      On Local Error GoTo 0
    End Sub

    Hilfsfunktionen

    ' Umsetzten des übergebenen Reg.-Zweiges in den
    ' benötigten String
    Private Function pKeyToString( _
      ByVal iREG_KEY As eREG_KEY) As String
     
      Dim sREG_KEY As String
     
      Select Case iREG_KEY
        Case iHKEY_CURRENT_USER
          sREG_KEY = "HKEY_CURRENT_USER\"
        Case iHKEY_LOCAL_MACHINE
          sREG_KEY = "HKEY_LOCAL_MACHINE\"
        Case iHKEY_CLASSES_ROOT
          sREG_KEY = "HKEY_CLASSES_ROOT\"
        Case iHKEY_USERS
          sREG_KEY = "HKEY_USERS\"
        Case iHKEY_CURRENT_CONFIG
          sREG_KEY = "HKEY_CURRENT_CONFIG\"
      End Select
     
      pKeyToString = sREG_KEY
    End Function
     
    ' Umsetzten des übergebenen Typs in den benötigten String
    Private Function pTypToString( _
      ByVal iREG_TYP As eREG_TYP) As String
     
      Dim sREG_TYP As String
     
      Select Case iREG_TYP
        Case iREG_SZ
          sREG_TYP = "REG_SZ"
        Case iREG_BINARY
          sREG_TYP = "REG_BINARY"
        Case iREG_DWORD
          sREG_TYP = "REG_DWORD"
      End Select
     
      pTypToString = sREG_TYP
    End Function

    Anwendungsbeispiel

    ' Wert schreiben
    gRegistry_Write iHKEY_CURRENT_USER, _
      "Software\MyApplication", "RegWert", "Test", iREG_SZ
    ' Wert auslesen
    MsgBox gRegistry_Read(iHKEY_CURRENT_USER, _
      "Software\MyApplication", "RegWert")
    ' Wert löschen
    gRegistry_Delete iHKEY_CURRENT_USER, _
      "Software\MyApplication", "RegWert"

    Dieser Tipp wurde bereits 13.504 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.

    Neue Diskussion eröffnen

    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-2015 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