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

Очистка корзины

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

Очистка корзины

Code:

unit Unit1;


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.btnEmptyRecicleBinClick(Sender: TObject);
var
Err: HRESULT;
begin
Err := SHEmptyRecycleBin(Handle, 'c:\', SHERB_NOSOUND);
if Err <> S_OK then ShowMessage(SysErrorMessage(Err));
end;
 
end.

Автор: Rouse_

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

Программный модуль на языке Delphi, который содержит код для взаимодействия с корзиной Windows. Модуль использует функции SHEmptyRecycleBin и SHQueryRecycleBin из библиотеки Shell32.dll для очистки корзины и получения информации о ней.

В этом разделе кода:

  1. В модуле включены различные библиотеки Windows, включая Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls и ShellAPI.
  2. Определены два константы: SHERB_NOCONFIRMATION, которая указывает, что не должна отображаться диалоговая окно подтверждения при очистке корзины; и SHERB_NOSOUND, которая указывает, что не должно играть звук при очистке корзины.
  3. Модуль содержит класс TForm1, который наследуется от TForm. Форма имеет три кнопки: btnGetRecicleBinFileCount, btnEmptyRecicleBin и btnDelToReciclebin. Каждая кнопка имеет ассоциированный с ней обработчик события.
  4. Функция SHQueryRecycleBin используется для получения информации о корзине,such as ее размер и количество элементов. Функция принимает параметр pszRootPath, который указывает на корневой путь корзины (в этом случае 'c:\'). Она также возвращает запись TSHQueryRBInfo, которая содержит запрошенную информацию.
  5. Функция SHEmptyRecycleBin используется для очистки корзины. Она принимает три параметра: hwnd, который является handle окна, которое должно быть уведомлено о завершении операции; pszRootPath, который указывает на корневой путь корзины (в этом случае 'c:\'); и dwFlags, которые указывают флаги для операции.

Процедура btnEmptyRecicleBinClick очищает корзину, вызывая SHEmptyRecycleBin с указанными параметрами. Если при операции возникает ошибка, отображается сообщение об ошибке пользователю.

Вот некоторые предложения по улучшению кода:

  1. Рассмотрите добавление обработки ошибок для других возможных ошибок, которые могут возникнуть при использовании функций SHEmptyRecycleBin и SHQueryRecycleBin.
  2. Вы можете добавить больше функциональности в форму, отвечая на другие события, такие как btnGetRecicleBinFileCountClick или btnDelToReciclebinClick.
  3. Хорошо бы было проверять ввод пользователя перед вызовом SHEmptyRecycleBin, чтобы убедиться, что указанный путь является корректным и доступным.

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

В статье описывается пример программирования на Delphi для очистки корзины на компьютере с использованием функций SHEmptyRecycleBin и SHQueryRecycleBin из библиотеки Shell32.dll.


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

Получайте свежие новости и обновления по 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:20:04/0.01121997833252/0