Недавно добавленные исходники

•  Animation Loaders  771

•  DeLiKaTeS Tetris (Тетрис)  5 750

•  TDictionary Custom Sort  7 707

•  Fast Watermark Sources  7 390

•  3D Designer  10 605

•  Sik Screen Capture  7 917

•  Patch Maker  8 142

•  Айболит (remote control)  8 194

•  ListBox Drag & Drop  6 993

•  Доска для игры Реверси  100 302

•  Графические эффекты  8 270

•  Рисование по маске  7 647

•  Перетаскивание изображений  6 250

•  Canvas Drawing  6 621

•  Рисование Луны  6 543

•  Поворот изображения  5 709

•  Рисование стержней  4 642

•  Paint on Shape  3 347

•  Генератор кроссвордов  4 319

•  Головоломка Paletto  3 470

•  Теорема Монжа об окружностях  4 294

•  Пазл Numbrix  2 780

•  Заборы и коммивояжеры  3 698

•  Игра HIP  2 495

•  Игра Go (Го)  2 484

•  Симулятор лифта  2 883

•  Программа укладки плитки  2 315

•  Генератор лабиринта  3 041

•  Проверка числового ввода  2 545

•  HEX View  2 950

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Получить количество файлов в корзине и их общий размер



Оформил: DeeCo

type
   PSHQueryRBInfo = ^TSHQueryRBInfo;
   TSHQueryRBInfo = packed record
     cbSize: DWORD;
     // Size of the structure, in bytes. 
    // This member must be filled in prior to calling the function. 
    i64Size: Int64;
     // Total size of all the objects in the specified Recycle Bin, in bytes. 
    i64NumItems: Int64;
     // Total number of items in the specified Recycle Bin. 
  end;

 const
   shell32 = 'shell32.dll';

 function SHQueryRecycleBin(szRootPath: PChar; SHQueryRBInfo: PSHQueryRBInfo): HResult;
   stdcall; external shell32 Name 'SHQueryRecycleBinA';

 function GetDllVersion(FileName: string): Integer;
 var
   InfoSize, Wnd: DWORD;
   VerBuf: Pointer;
   FI: PVSFixedFileInfo;
   VerSize: DWORD;
 begin
   Result   := 0;
   InfoSize := GetFileVersionInfoSize(PChar(FileName), Wnd);
   if InfoSize <> 0 then
   begin
     GetMem(VerBuf, InfoSize);
     try
       if GetFileVersionInfo(PChar(FileName), Wnd, InfoSize, VerBuf) then
         if VerQueryValue(VerBuf, '\', Pointer(FI), VerSize) then
           Result := FI.dwFileVersionMS;
     finally
       FreeMem(VerBuf);
     end;
   end;
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 var
   DllVersion: integer;
   SHQueryRBInfo: TSHQueryRBInfo;
   r: HResult;
 begin
   DllVersion := GetDllVersion(PChar(shell32));
   if DllVersion >= $00040048 then
   begin
     FillChar(SHQueryRBInfo, SizeOf(TSHQueryRBInfo), #0);
     SHQueryRBInfo.cbSize := SizeOf(TSHQueryRBInfo);
     R := SHQueryRecycleBin(nil, @SHQueryRBInfo);
     if r = s_OK then
     begin
       label1.Caption := Format('Size:%d Items:%d',
         [SHQueryRBInfo.i64Size, SHQueryRBInfo.i64NumItems]);
     end
     else
       label1.Caption := Format('Err:%x', [r]);
   end;
 end;

 { 

The SHQueryRecycleBin API used in this method is 
only available on systems with the latest shell32.dll installed with IE4 / 
Active Desktop. 

}




Похожие по теме исходники

Чтение PSD файлов

Шифратор файлов

Поиск файлов

FileMan (менеджер файлов)

 

Поиск открытых файлов




Copyright © 2004-2026 "Delphi Sources" by «SiteAnalyzer». Delphi World FAQ

Группа ВКонтакте