Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Файловая система , Корзина

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

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.

Автор: Rouse_

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

Программа на языке Delphi, которая отображает состояние корзинки, в частности, количество элементов и их общий размер.

Разбивка кода:

Единицы и интерфейсы Единица Unit1 содержит раздел интерфейса, импортирующий различные библиотеки Windows (например, Windows, Messages, SysUtils) и определяет константы для функций оболочки.

Формы и контролы Форма TForm1 имеет три кнопки: btnGetRecicleBinFileCount, btnEmptyRecicleBin и btnDelToReciclebin. Первая кнопка кликается, чтобы получить состояние корзинки, что вызывает процедуру btnGetRecicleBinFileCountClick.

Процедура btnGetRecicleBinFileCountClick Эта процедура: 1. Создает запись TSHQueryRBInfo, чтобы хранить информацию о корзинке. 2. Устанавливает поле cbSize в размер записи в байтах. 3. Вызывает функцию SHQueryRecycleBin, чтобы получить информацию о корзинке. Функция принимает три параметра: pszRootPath (установлен в nil, что указывает на корень корзинки), dwFlags (установлен в 0, что означает отсутствие специальных флагов) и указатель на запись TSHQueryRBInfo. 4. Проверяет, была ли операция успешной, проверяя значение возвращаемого значения функции SHQueryRecycleBin. Если оно равно S_OK, отображается сообщение об ошибке с информацией о состоянии корзинки (т.е., количество элементов и их общий размер). В противном случае отображается сообщение об ошибке.

Дополнительные функции Единица также определяет два внешних функции оболочки: 1. SHEmptyRecycleBin - очищает корзинку 2. SHQueryRecycleBin - получает информацию о корзинке Эти функции импортируются из библиотеки shell32.dll с помощью вызова stdcall.

В целом, этот код демонстрирует, как использовать Delphi для взаимодействия с оболочкой Windows и получения информации о корзинке.

Представлен код на Delphi, демонстрирующий способ просмотра состояния корзины компьютера и отображения количества элементов и их общего размера.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Корзина ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-27 01:13:08/0.0032918453216553/0