terça-feira, 14 de fevereiro de 2012

Delphi - Limpando a lixeira pela API do windows


Segue abaixo uma rotina para limpar a lixeira do Windows.

procedure EmptyRecycleBin;
const
  SHERB_NOCONFIRMATION = $00000001;
  SHERB_NOPROGRESSUI = $00000002;
  SHERB_NOSOUND = $00000004;
type
  TSHEmptyRecycleBin = function(Wnd: HWND;
                                pszRootPath: PChar;
                                dwFlags: DWORD): HRESULT;  stdcall;
   var
    SHEmptyRecycleBin: TSHEmptyRecycleBin;
    LibHandle: THandle;
      begin 
        LibHandle := LoadLibrary(PChar('Shell32.dll'));
          if LibHandle <> 0 then @SHEmptyRecycleBin :=
           GetProcAddress(LibHandle, 'SHEmptyRecycleBinA')
         else
          begin
           MessageDlg('Failed to load Shell32.dll.', mtError, [mbOK], 0);
           Exit;
      end;
 if @SHEmptyRecycleBin <> nil then
 SHEmptyRecycleBin(Application.Handle,nil,SHERB_NOCONFIRMATION or    SHERB_NOPROGRESSUI or SHERB_NOSOUND);
  FreeLibrary(LibHandle); @SHEmptyRecycleBin := nil;
end;
//Chamando a Procedure
procedure TForm1.Button1Click(Sender: TObject);
begin
  EmptyRecycleBin;
end;

Nenhum comentário:

Postar um comentário