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

•  Animation Loaders  964

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

•  TDictionary Custom Sort  7 850

•  Fast Watermark Sources  7 520

•  3D Designer  10 749

•  Sik Screen Capture  8 078

•  Patch Maker  8 279

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

•  ListBox Drag & Drop  7 165

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

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

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

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

•  Canvas Drawing  6 738

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

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

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

•  Paint on Shape  3 443

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

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

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

•  Пазл Numbrix  2 833

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

•  Игра HIP  2 552

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

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

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

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

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

•  HEX View  3 014

 
скрыть

  Форум  

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

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