Tipp 6.9 - Registry-Schlüssel in REG-Datei
Wie kann ich einen Registry-Schlüssel in eine REG-Datei exportieren?
Mit dieser Funktion kann man einen Registry-Schlüssel in eine REG-Datei exportieren. Dabei wird lediglich der Registrierungseditor aufgerufen und dafür benutzt, die entsprechende Datei zu erstellen.
Das wäre zwar auch mit API-Funktionen in VB möglich, nur wäre der Aufwand enorm höher ohne einen wirklichen Vorteil zu haben.
Kopieren Sie einfach nachfolgenden Quellcode in die Zwischenablage und fügen Sie anschließend den Inhalt der Zwischenablage in ein neues Modul ein. Die Aufrufparameter finden Sie im Quellcode beschrieben.
Verwendete Win32-Api-Aufrufe und Typen: ShellExecute
Beispiel:
'Registry-Schlüssel in REG-Datei 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 Function RegExport(ByVal sRegPath As String, _ ByVal sExportFile As String) As Boolean '// ====================================================================== '// Funktion: |Exportieren eines Registry-Schlüssels mithilfe des Reg.- '// |editors REGEDIT.EXE. '// ---------------------------------------------------------------------- '// Vorauss.: |Leserechte für die Registry '// |Schreibrechte für die Exportdatei '// ---------------------------------------------------------------------- '// Parameter:|sRegPath = der zu exportierende Registry-Schlüssel '// |sExportFile = vollständiger Dateipfad für den Export '// ---------------------------------------------------------------------- '// Rückgabe: |True bei Erfolg, sonst False '// ---------------------------------------------------------------------- '// Autor: |Stefan Kulpa, 03.10.2006 '// geändert: | '// ====================================================================== '// Beispiel: |HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run '// |alle automatisch startenden Programme... '// MsgBox RegExport( _ '// "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", _ '// "C:\Autorun.reg") '// ====================================================================== '// Hinweis: |ACHTUNG: umfangreiche Pfade wie z.B. direkt der Pfad '// |HKEY_LOCAL_MACHINE\SOFTWARE dauern entsprechend lang !!! '// ====================================================================== On Error GoTo Err_RegExport Const csREGEXE As String = "regedit.exe" Const csEXEPARAM As String = " /E " Dim sCmdLine As String Dim lResult As Long sCmdLine = csEXEPARAM & sExportFile & Space$(1) & QuoteIt(sRegPath) lResult = ShellExecute(0&, "open", csREGEXE, sCmdLine, 0&, vbHide) RegExport = CBool(lResult > 32) Exit_RegExport: On Error GoTo 0 Exit Function Err_RegExport: RegExport = False Resume Exit_RegExport End Function Function QuoteIt(ByVal sValue As String) As String '// " durch ' ersetzen sValue = Replace$(sValue, Chr(34), Chr(39)) QuoteIt = Chr(34) & sValue & Chr(34) End Function