![]() |
REG-Datei importieren
Hallo,
ich hab folgendes Problem: Ich möchte eine REG-Datei in die Registry in einem von mir festgelegten Pfad importieren. Dazu lege ich mit RegCreateKey einen Unterschlüssel an (funktioniert), unter dem die Daten aus der Reg-Datei importiert werden sollen. Zum Importieren selbst verwende ich Luckie's routine "RegLoadKeyFromFile" (leicht abgewandelt, so das er auf NT-Systemen auch RegLoadkey verwendet, statt regrestorekey).
Delphi-Quellcode:
Allerdings bekomme ich die Fehlermeldung zurück, das das Format der Reg-Datei nicht stimmen
function RegLoadKeyFromFile(Key: HKEY; const SubKey, Filename: string): DWORD;
const SE_BACKUP_NAME = 'SeBackupPrivilege'; SE_RESTORE_NAME = 'SeRestorePrivilege'; var PrevBackup: Boolean; PrevRestore: Boolean; KeyHandle: HKEY; ShortName: array[0..MAX_PATH] of Char; begin Result := SetPrivilege(SE_BACKUP_NAME, True, PrevBackup); if (Result = ERROR_SUCCESS) then try Result := SetPrivilege(SE_RESTORE_NAME, True, PrevRestore); if (Result = ERROR_SUCCESS) then try if (GetVersion() > $80000000) then begin // Win9x (FIXME: Test it! - and see RegReplaceKey) if (GetShortPathName(PChar(Filename), ShortName, MAX_PATH) = 0) then Result := GetLastError() else Result := RegLoadKey(Key, PChar(SubKey), ShortName); end else begin // WinNT (FIXME: Load RegRestoreKey dynamically!) KeyHandle := 0; Result := RegOpenKeyEx(Key, PChar(SubKey), 0, MAXIMUM_ALLOWED, KeyHandle); if (Result = ERROR_SUCCESS) then try Result := RegLoadKey(KeyHandle, pchar(SubKey),PChar(Filename)); finally RegCloseKey(KeyHandle); end; end; finally if (not PrevRestore) then SetPrivilege(SE_RESTORE_NAME, PrevRestore, PrevRestore); end; finally if (not PrevBackup) then SetPrivilege(SE_BACKUP_NAME, PrevBackup, PrevBackup); end; end; würde. Und das mit einer Reg-Datei die ich vorher mit Regedit exportiert hab ?????? Daraufhin hab ich einige Tests gemacht. Zuerst hab ich in der Reg-Datei die Schlüssel so angepasst, das sie auf den neuen Schlüssel passen (HKEY_xxxx durch meinen Pfad ersetzt). -> Gleicher Fehler Dann einfach nur HKEY_xxxx aus den Key's entfernt. -> Gleicher Fehler. Woran kann das liegen ???? |
Re: REG-Datei importieren
Die API Funktionen erwarten eine Reg-Datei im Binärformat, während der Export über Regedit Text-Dateien erzeugt. Exportiere sie auch mit den API-Funktionen oder oder ruf den Kommandozeile Registryeditor mit entsprechenden Parametern auf.
|
Re: REG-Datei importieren
Moin Ghostwalker,
Zitat:
![]() Für letzteres benötigst Du dann aber einen Hexviewer, denn es handelt sich nicht um eine Textdatei. RegSaveKey ist das Gegenstück zu RegLoadKey. Der Export mit RegEdit hat damit nichts zu tun. |
Re: REG-Datei importieren
Danke, Das Hilft doch weiter :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz