1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
var
i : Integer;
s : String;
f1, f2, f3,
f4, fDest : File;
FSize : Integer;
StrBuf : String;
begin
dlgSave.Filter := 'Windows registry file | *.reg';
dlgSave.InitialDir := '';
dlgSave.DefaultExt := '.reg';
dlgSave.Options := [ofOverwritePrompt,ofHideReadOnly,ofEnableSizing];
if (dlgSave.Execute = True) then Begin
// Sauvegarde des clé dans des fichiers temporaires
s := dlgSave.FileName + 'tmpEX';
ShellExecute (0, nil, 'regedit.exe', PChar ('/e "' + s +'" "HKEY_LOCAL_MACHINE\SOFTWARE\M\EX\"'), nil, 0);
s := dlgSave.FileName + 'tmpDBC';
ShellExecute (0, nil, 'regedit.exe', PChar ('/e "' + s +'" "HKEY_LOCAL_MACHINE\SOFTWARE\M\DBC\"'), nil, 0);
s := dlgSave.FileName + 'tmpGR';
ShellExecute (0, nil, 'regedit.exe', PChar ('/e "' + s +'" "HKEY_LOCAL_MACHINE\SOFTWARE\M\GR\"'), nil, 0);
s := dlgSave.FileName + 'tmpSYNC';
ShellExecute (0, nil, 'regedit.exe', PChar ('/e "' + s +'" "HKEY_LOCAL_MACHINE\SOFTWARE\M\Sync\"'), nil, 0);
AssignFile(f1, dlgSave.FileName + 'tmpEX');
AssignFile(f2, dlgSave.FileName + 'tmpDBC');
AssignFile(f3, dlgSave.FileName + 'tmpGR');
AssignFile(f4, dlgSave.FileName + 'tmpSYNC');
Reset(f1,1);
Reset(f2,1);
Reset(f3,1);
Reset(f4,1);
AssignFile(FDest, dlgSave.FileName);
Rewrite(FDest,1);
FSize := FileSize(f1);
BlockRead(f1, StrBuf, FSize);
BlockWrite(fDest, StrBuf, FSize);
FSize := FileSize(f2);
BlockRead(f3, StrBuf, FSize);
BlockWrite(fDest, StrBuf, FSize);
FSize := FileSize(f3);
BlockRead(f3, StrBuf, FSize);
BlockWrite(fDest, StrBuf, FSize);
FSize := FileSize(f4);
BlockRead(f4, StrBuf, FSize);
BlockWrite(fDest, StrBuf, FSize);
CloseFile(f1);
CloseFile(f2);
CloseFile(f3);
CloseFile(f4);
CloseFile(fDest);
DeleteFile(dlgSave.FileName + 'tmpEX');
DeleteFile(dlgSave.FileName + 'tmpDBC');
DeleteFile(dlgSave.FileName + 'tmpGR');
DeleteFile(dlgSave.FileName + 'tmpSYNC');
end
end; |
Partager