Monday, March 05, 2007

Vyprázdnění koše

Když už jsme se naučili, jak zjistit, zda je koš prázdný či ne, ukažme si teď postup, jak jej vyprázdnit a definitivně tak soubory smazat.
procedure TForm1.Button1Click(Sender: TObject);

const
SHERB_NOCONFIRMATION = $00000001;
SHERB_NOPROGRESSUI = $00000002;
SHERB_NOSOUND = $00000004;

type TSHEmptyRecycleBin = function(Wnd: HWND; LPCTSTR: PChar; DWord: Word): Integer; stdcall;

var
SHEmptyRecycleBin : TSHEmptyRecycleBin;
LibHandle : THandle;

begin
LibHandle := LoadLibrary(PChar('Shell32.dll'));
if LibHandle <> 0 then @SHEmptyRecycleBin := GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
else
begin
ShowMessage('Chyba při přístupu ke knihovně Shell32.dll');
Exit;
end;
if @SHEmptyRecycleBin <> nil then
begin
SHEmptyRecycleBin(Application.Handle, '', SHERB_NOCONFIRMATION or SHERB_NOPROGRESSUI or SHERB_NOSOUND);
ShowMessage('Koš vysypán!');
end;
FreeLibrary(LibHandle);
@SHEmptyRecycleBin := nil;
end;

Labels: