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.btnDelToReciclebinClick(Sender: TObject);
var
Struct: TSHFileOpStruct;
Err: HRESULT;
begin
with Struct do
begin
Wnd := Handle;
wFunc := FO_DELETE;
pFrom := 'c:\1.txt';
pTo := nil;
fFlags := FOF_ALLOWUNDO;
fAnyOperationsAborted := True;
hNameMappings := nil;
lpszProgressTitle := nil;
end;
Err := SHFileOperation(Struct);
if Err <> S_OK then ShowMessage(SysErrorMessage(Err));
end;
Программа на языке Delphi, которая демонстрирует, как удалить файл из корзинки с помощью Windows API.
Вот подробное описание того, что код делает:
Программа использует несколько библиотек Windows API, включая Windows, Messages, SysUtils, Variants, Classes и ShellAPI.
Она определяет два константы: SHERB_NOCONFIRMATION и SHERB_NOPROGRESSUI, которые используются для настройки поведения корзины.
Программа определяет форму (TForm1) с тремя кнопками:
btnGetRecicleBinFileCount: получает количество файлов в корзине.
btnEmptyRecicleBin: очищает корзину.
btnDelToReciclebin: удаляет файл в корзину.
Программа определяет две функции из Windows API:
SHEmptyRecycleBin: очищает корзину.
SHQueryRecycleBin: получает информацию о корзине.
В обработчике события btnDelToReciclebinClick программа создает структуру TSHFileOpStruct, чтобы определить операцию с файлом:
Она устанавливает handle окна (Wnd) в handle текущей формы.
Она устанавливает функцию файла (wFunc) в FO_DELETE, указывая, что она хочет удалить файл.
Она устанавливает путь исходного файла (pFrom) в 'c:\1.txt'.
Она устанавливает путь назначения файла (pTo) в nil, указывая, что она не нуждается в перемещении файла.
Она устанавливает флаги (fFlags) в FOF_ALLOWUNDO, позволяя пользователю отменить операцию, если это необходимо.
Она инициализирует переменную Err для хранения кодов ошибок, возвращаемых функциями Windows API.
Затем программа вызывает функцию SHFileOperation с структурой TSHFileOpStruct как аргументом, которая выполняет операцию с файлом. Если операция успешна, она отображает сообщение об ошибке, указывая, что операция была выполнена. Если возникла ошибка, она отображает сообщение об ошибке с соответствующим кодом ошибки.
В целом, это код демонстрирует, как взаимодействовать с корзиной с помощью Delphi и Windows API.
Удаление файла в корзину на языке Delphi с помощью функции SHFileOperation и интерфейса ShellAPI.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.