vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Registry Schlüssel exportieren 
Autor: Thomas1990
Datum: 06.05.15 20:43

Guten Abend,

habe mal ein kniffiges Anliegen zumal es um die Registry geht und ich mich mit dieser bis heute leider nicht beschäftigt habe.

Ich habe mir kürzlich eine Klasse aus dem Internet geladen wo Registry-Schlüssel und Werte anhand von Definitionen, die in einer .INI-Datei geschrieben sind, gelöscht werden. Jetzt wollte ich diese Klasse um eine Registry-Export Möglichkeit erweitern, leider erfolglos.

Ich poste mal die zwei Funktionen um die es nun geht

Die API erstmal vorweg
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" ( _
  ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal _
  samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As _
Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias _
"RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" ( _
ByVal hKey As Long, ByVal lpSubKey As String) As Long
Private Declare Function SetEnvironmentVariable Lib "kernel32.dll" Alias _
"SetEnvironmentVariableA" (ByVal lpName As String, ByVal lpValue As String) As _
Long
Private Declare Function ExpandEnvironmentStrings Lib "kernel32.dll" Alias _
"ExpandEnvironmentStringsA" (ByVal lpSrc As String, ByVal lpDst As String, _
ByVal nSize As Long) As Long
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal _
lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As _
Long
 
Private Const ERROR_SUCCESS = 0
Private Const KEY_ALL_ACCESS = &H3F
Private Const KEY_SET_VALUE = &H2
Private Const REG_OPTION_NON_VOLATILE As Long = 0
Private Const KEY_READ As Long = &H20019
 
Private Enum RegDelOp
    rKey = 1
    rValue = 2
End Enum
Private Function RegRemove(DelOp As RegDelOp, hKey As Long, _
    Optional Parm1 As String = "", Optional Parm2 As String = "") As Boolean
 
    On Error Resume Next
Dim iRet As Long
Dim hKeyRet As Long
Dim Shell
 
    iRet = -1
    'Open the key and see if it exsists
    If RegOpenKeyEx(hKey, Parm1, 0, KEY_ALL_ACCESS, hKeyRet) <> ERROR_SUCCESS Then
        Exit Function
    End If
 
    'Delete Value
    If (DelOp = rValue) Then
        iRet = RegDeleteValue(hKeyRet, Parm2)
    End If
 
    'Delete Key
    If (DelOp = rKey) Then
       ' iRet = RegDeleteKey(hKey, Parm1)
          iRet = RegDeleteKey(hKey, Parm1)
    End If
 
 
 
    'Check for Success
    If (iRet = ERROR_SUCCESS) Then
        Call RegCloseKey(hKeyRet)
        RegRemove = True
    End If
 
End Function
Private Sub DoRegistry(ByVal Selection As String)
Dim iVals As New Collection
Dim Size As Integer
Dim Tmp() As String
Dim iRet As Boolean
 
    Set iVals = GetIniSelection(Selection)
 
    For Each RegOp In iVals
        Tmp = Split(INIReadKey(Selection, RegOp), "|", , vbBinaryCompare)
        Size = SafeUBound(Tmp)
        Select Case Size
            Case rKey
                iRet = RegRemove(rKey, StrToKey(Tmp(0)), Tmp(1))
            Case rValue
                iRet = RegRemove(rValue, StrToKey(Tmp(0)), Tmp(1), Tmp(2))
 
              '  iRet =RegSaveKey oder eine ähnliche API würde ich gerne hier 
              ' anbinden!?
 
 
        End Select
    Next RegOp
 
    'Clear up
    Set iVals = Nothing
    RegOp = ""
    iRet = False
    Erase Tmp
    Size = 0
 
End Sub
Die zweite Sub ist in der Mitte auskommentiert. Da würde ich gerne fortsetzen. Geht das wie ich mir das vorstelle oder muss eine Neue Funktion her?

Ich würde mich über jede helfe freuen.

Vielen dank schonmal im Voraus
 
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Registry Schlüssel exportieren1.286Thomas199006.05.15 20:43

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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