a ako hoces za cele drajvove mozes da pravis image fajlove ovako:
Code:
procedure ImageDisk;
var
InF, OutF: THandle;
Buffer: array [1..(1024 * 64)] of Byte; // 64kb buffer
BufRead, BufWrote: DWORD;
begin
InF := CreateFile('\\.\A:',GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
OutF := CreateFile('DISK.IMG',GENERIC_WRITE,FILE_SHARE_READ,nil,CREATE_ALWAYS,0,0);
BufRead := 1;
while (ReadFile(InF,Buffer,SizeOf(Buffer),BufRead,nil) = True) and
(BufRead <> 0) do
begin
WriteFile(OutF,Buffer,BufRead,BufWrote,nil);
end;
CloseHandle(OutF);
CloseHandle(InF);
end;
procedure RestoreImage;
var
InF, OutF: THandle;
Buffer: array [1..(1024 * 64)] of Byte; // 64kb buffer
BufRead, BufWrote: DWORD;
begin
InF := CreateFile('DISK.IMG',GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
OutF := CreateFile('\\.\A:',GENERIC_WRITE,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
if GetFileSize(OutF,nil) < GetFileSize(InF,nil) then
begin
CloseHandle(InF);
CloseHandle(OutF);
Exit;
end;
BufRead := 1;
while (ReadFile(InF,Buffer,SizeOf(Buffer),BufRead,nil) = True) and
(BufRead <> 0) do
begin
WriteFile(OutF,Buffer,BufRead,BufWrote,nil);
end;
CloseHandle(OutF);
CloseHandle(InF);
end;
Ride the rainbow, crack the sky
DIY gitare, pojacala i efekti
www.diy-fever.com