![]() |
Vor dem Leeren prüfen, ob Dateien im Papierkorb sind
Im EDH (
![]()
Delphi-Quellcode:
Das meiste sollte verständlich sein. Wichtig ist nur die Zeile
type
TSHQueryRBInfo = packed record cbSize : dword; i64Size : int64; i64NumItems : int64; end; TSHQueryRecycleBin = function(pszRootPath: LPCTSTR; var pSHQueryRBInfo: TSHQueryRBInfo): HRESULT; stdcall; var SHQueryRecycleBin : TSHQueryRecycleBin = nil; RBHandle : THandle = 0; RBInfo : TSHQueryRBInfo; begin RBHandle := LoadLibrary('shell32.dll'); if(RBHandle <> 0) then begin SHQueryRecycleBin := GetProcAddress(RBHandle,'SHQueryRecycleBinA'); if(@SHQueryRecycleBin = nil) then begin FreeLibrary(RBHandle); RBHandle := 0; end; end; fillchar(RBInfo,sizeof(TSHQueryRBInfo),0); RBinfo.cbSize := sizeof(TSHQueryRBInfo); if(RBHandle <> 0) and (assigned(SHQueryRecycleBin)) then if(SHQueryRecycleBin('',RBInfo) = S_OK) then if(RBInfo.i64NumItems > 0) then begin // Daten vorhanden, Papierkorb kann geleert werden! // (s. Funktion im EDH) end; if(RBHandle <> 0) then FreeLibrary(RBHandle); end.
Delphi-Quellcode:
In dem Fall könnt ihr davon ausgehen, dass sich etwas im Papierkorb befindet, was dann auch gelöscht werden kann. Interessant zu wissen ist, dass die unsichtbare Datei "desktop.ini", die sich in jedem Fall im Papierkorb-Ordner befindet, davon ausgenommen ist.
if(RBInfo.i64NumItems > 0) then
Danke an NicoDE! [edit=Matze][code] durch [delphi]-Tags ersetzt und Code formatiert. Mfg, Matze[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:50 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz