
04-07-2017, 20:08
|
 |
Registered User
|
|
Join Date: Jun 2016
Location: India
Posts: 82
Thanks: 89
Thanked 114 Times in 37 Posts
|
|
Quote:
Originally Posted by JRD!
Code:
#define MyAppName "MyApp"
#define MyAppVersion "1.0"
[Setup]
AppName={#MyAppName}
AppVersion={#MyAppVersion}
DefaultDirName={code:GetMaxFreeSpace}\{#MyAppName}
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[ Code]
#ifdef UNICODE
#define AW "W"
#else
#define AW "A"
#endif
function GetDriveType(lpRootPathName: string): UINT;
external 'GetDriveType{#AW}@kernel32.dll stdcall';
function GetMaxFreeSpace(S: String): String;
var
i: Integer;
sDriveRoot: string;
iLastMax, iNewMax, iTotal: Cardinal;
begin
iLastMax:=0;
for i := 1 to 26 do
begin
sDriveRoot := Chr(i+64)+':';
if GetDriveType(sDriveRoot) = 3 then
begin
GetSpaceOnDisk(sDriveRoot, True, iNewMax, iTotal);
if iLastMax < iNewMax then
begin
iLastMax := iNewMax;
Result:=sDriveRoot;
end;
end;
end;
end;
|
Thanks.
Will try it.
|