Просмотр состояния корзины

Previous  Top  Next

    
 

 

 

Code:

unit Unit1;

{©Drkb v.3(2007): www.drkb.ru}

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ShellAPI;

 

const

SHERB_NOCONFIRMATION  =  $1;

SHERB_NOPROGRESSUI    =  $2;

SHERB_NOSOUND         =  $4;

 

type

TForm1 = class(TForm)

   btnGetRecicleBinFileCount: TButton;

   btnEmptyRecicleBin: TButton;

   btnDelToReciclebin: TButton;

   procedure btnGetRecicleBinFileCountClick(Sender: TObject);

   procedure btnEmptyRecicleBinClick(Sender: TObject);

   procedure btnDelToReciclebinClick(Sender: TObject);

end;

 

type

  TSHQueryRBInfo = packed record

    cbSize      : DWORD;

    i64Size,

    i64NumItems : TLargeInteger;

  end;

  PSHQueryRBInfo = ^TSHQueryRBInfo;

 

function SHEmptyRecycleBin(hwnd: HWND; pszRootPath: PChar;

   dwFlags: DWORD): HRESULT; stdcall;

   external 'shell32.dll' name 'SHEmptyRecycleBinA';

 

function SHQueryRecycleBin (pszRootPath: PChar;

   var SHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall;

   external 'Shell32.dll' name 'SHQueryRecycleBinA'

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

// Просмотр состояния корзины (краткая информация)

procedure TForm1.btnGetRecicleBinFileCountClick(Sender: TObject);

var

Info: TSHQueryRBInfo;

Err: HRESULT;

begin

ZeroMemory(@Info, SizeOf(Info));

Info.cbSize := SizeOf(Info);

Err := SHQueryRecycleBin(nil, Info);

if Err = S_OK then

   ShowMessage(Format('Всего в корзине %d эелементов, их общий размер: %d',

     [Info.i64NumItems, Info.i64Size]))

else

   ShowMessage(SysErrorMessage(Err));

end;

 

end.

 

Пример работы с корзиной можно скачать здесь:
 

rbin.zip

 

Автор: Rouse_

©Drkb::01709

Взято из http://forum.sources.ru