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;
Программный модуль на языке Delphi, который содержит код для взаимодействия с корзиной Windows. Модуль использует функции SHEmptyRecycleBin и SHQueryRecycleBin из библиотеки Shell32.dll для очистки корзины и получения информации о ней.
В этом разделе кода:
В модуле включены различные библиотеки Windows, включая Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls и ShellAPI.
Определены два константы: SHERB_NOCONFIRMATION, которая указывает, что не должна отображаться диалоговая окно подтверждения при очистке корзины; и SHERB_NOSOUND, которая указывает, что не должно играть звук при очистке корзины.
Модуль содержит класс TForm1, который наследуется от TForm. Форма имеет три кнопки: btnGetRecicleBinFileCount, btnEmptyRecicleBin и btnDelToReciclebin. Каждая кнопка имеет ассоциированный с ней обработчик события.
Функция SHQueryRecycleBin используется для получения информации о корзине,such as ее размер и количество элементов. Функция принимает параметр pszRootPath, который указывает на корневой путь корзины (в этом случае 'c:\'). Она также возвращает запись TSHQueryRBInfo, которая содержит запрошенную информацию.
Функция SHEmptyRecycleBin используется для очистки корзины. Она принимает три параметра: hwnd, который является handle окна, которое должно быть уведомлено о завершении операции; pszRootPath, который указывает на корневой путь корзины (в этом случае 'c:\'); и dwFlags, которые указывают флаги для операции.
Процедура btnEmptyRecicleBinClick очищает корзину, вызывая SHEmptyRecycleBin с указанными параметрами. Если при операции возникает ошибка, отображается сообщение об ошибке пользователю.
Вот некоторые предложения по улучшению кода:
Рассмотрите добавление обработки ошибок для других возможных ошибок, которые могут возникнуть при использовании функций SHEmptyRecycleBin и SHQueryRecycleBin.
Вы можете добавить больше функциональности в форму, отвечая на другие события, такие как btnGetRecicleBinFileCountClick или btnDelToReciclebinClick.
Хорошо бы было проверять ввод пользователя перед вызовом SHEmptyRecycleBin, чтобы убедиться, что указанный путь является корректным и доступным.
В целом, этот код предоставляет основное пример использования Delphi для взаимодействия с корзиной Windows.
В статье описывается пример программирования на Delphi для очистки корзины на компьютере с использованием функций SHEmptyRecycleBin и SHQueryRecycleBin из библиотеки Shell32.dll.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.