|
|
|
#1
|
||||
|
||||
|
Quote:
@hitman797, ok, i'll add a new function to retrieve RecycleBin info in a future 'FMXInno' update. currently, there are no new features or bug fixes to push an update. so, feel free to use your own library until the next update, especially if you need it right now. Delphi DLL: Code:
library AMyDll;
{$R *.res}
const
C_M_BYTES = 1024 * 1024;
type
DWORDLONG = UInt64;
DWORD = FixedUInt;
LPCWSTR = PWideChar;
LPSHQUERYRBINFO = ^SHQUERYRBINFO;
SHQUERYRBINFO = packed record
cbSize : DWORD; // Size of struct SHQUERYRBINFO.
i64Size : DWORDLONG; // Files size in Bytes.
i64NumItems : DWORDLONG; // Files Count.
end;
function SHQueryRecycleBinW(pszRootPath: LPCWSTR; pSHQueryRBInfo: LPSHQUERYRBINFO): HResult; stdcall;
external 'shell32.dll' name 'SHQueryRecycleBinW';
function AGetRecycleBinInfo(ARootPath: WideString; var TotalSizeMB: extended;
var FileCount: Integer): Boolean; stdcall;
var
RBInfo: SHQUERYRBINFO; // Structure to store RecycleBin info
RBRoot: LPCWSTR; // Root path for the RecycleBin query
begin
try
// RBRoot <> nil --> Retrieve RecycleBin info from ARootPath.
// RBRoot = nil --> Retrieve RecycleBin info from All Drives.
if Length(ARootPath) = 0 then RBRoot := nil else RBRoot := LPCWSTR(ARootPath);
RBInfo.cbSize := SizeOf(RBInfo); // Set the size of the structure
if SHQueryRecycleBinW(RBRoot, @RBInfo) = S_OK then
begin
TotalSizeMB := RBInfo.i64Size / C_M_BYTES;
FileCount := RBInfo.i64NumItems;
Result := True;
end else
Result := False;
except
Result := False;
end;
end;
exports
AGetRecycleBinInfo;
begin
end.
InnoSetup: Code:
function AGetRecycleBinInfo(ARootPath: WideString; var TotalSizeMB: Extended; var FileCount: Integer): Boolean;
external 'AGetRecycleBinInfo@files:AMyDll.dll stdcall';
procedure TestBtnClick(Sender: TObject);
var
TotalSizeMB: Extended;
FileCount: Integer;
begin
if AGetRecycleBinInfo('', TotalSizeMB, FileCount) then
begin
Memo.Lines.Add(format('RecycleBin Files Size: < %0.2n GB >', [TotalSizeMB / 1024]));
Memo.Lines.Add(format('RecycleBin Files Count: < %d >', [FileCount]));
end else
Memo.Lines.Add('AGetRecycleBinInfo Error!')
end;
. Last edited by BLACKFIRE69; 14-07-2024 at 02:11. |
| The Following 5 Users Say Thank You to BLACKFIRE69 For This Useful Post: | ||
audiofeel (16-10-2023), Behnam2018 (16-10-2023), hitman797 (16-10-2023), Lord.Freddy (16-10-2023), Wanterlude (18-10-2023) | ||
| Sponsored Links |
|
#2
|
||||
|
||||
|
Quote:
I will use this library until the update is released to FMXInno.
|
| The Following User Says Thank You to hitman797 For This Useful Post: | ||
audiofeel (16-10-2023) | ||
|
#3
|
|||
|
|||
|
Quote:
I have been using your library for a long time in my distributions, as well as repacks from FMXTeam. P.S. I'm still waiting for the implementation of creating a form with a background in the form of a video. |
![]() |
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Windows Fluent Effects Standalone API - InnoSetup / VCL / FXM | BLACKFIRE69 | Conversion Tutorials | 0 | 15-11-2023 17:35 |
| Windows Phone Installer similar to razor12911's original design? | Kitsune1982 | Conversion Tutorials | 0 | 02-07-2020 13:04 |
| INDEX - Conversion Tutorial Index | Razor12911 | Conversion Tutorials | 5 | 11-06-2020 02:05 |
| Frequently Asked Questions | Joe Forster/STA | PC Games - Frequently Asked Questions | 0 | 29-11-2005 09:48 |