|
#11
|
||||
|
||||
|
Question
Need help.
The code pat below is for Inno Ansi Version. I wanted modify to work on inno unicode version. Code:
function GetDC(HWND: DWord): DWord; external '[email protected] stdcall'; function GetDeviceCaps(DC: DWord; Index: Integer): Integer; external '[email protected] stdcall'; function ReleaseDC(HWND: DWord;DC: DWord): Integer; external '[email protected] stdcall'; function GetDriveType(lpDisk: String): Integer; external '[email protected] stdcall setuponly'; function GetVolumeInformation (lpRootPathName,lpVolumeNameBuffer: PAnsiChar; nVolumeNameSize: longint; lpVolumeSerialNumber,lpMaximumComponentLength: Cardinal; lpFileSystemFlags: Cardinal; lpFileSystemNameBuffer: PAnsiChar; nFileSystemNameSize: dword): longword; external '[email protected] stdcall setuponly'; function GetScreenHeight(): integer; var dc: DWord; begin dc:=GetDC(MainForm.Handle); Result:=GetDeviceCaps(dc,10); ReleaseDC(MainForm.Handle,dc); end; function GetScreenWidth(): integer; var dc: DWord; begin dc:=GetDC(MainForm.Handle); Result:=GetDeviceCaps(dc,8); ReleaseDC(MainForm.Handle,dc); end; Function GetFixedDrivesInfo(): Array of Tdrive; Var l:string; s,c,n: integer; FreeMB, TotalMB: Cardinal; Vl: array of AnsiString; Fsn: PAnsiChar; // Begin l:='ABCDEFGHIJKLMNOPQRSTUWXYZ'; for c:=1 to length(l) do begin if GetDriveType(l[c]+':')=DRIVE_FIXED then begin n:=GetArrayLength(Result); s:=GetArrayLength(Vl); SetArrayLength(Result,n+1); SetArrayLength(Vl,s+1); Vl[s]:=StringOfChar(' ',256); GetVolumeInformation (l[c]+':\',Vl[s],MAX_PATH,0,0,0,PAnsiChar(Fsn),MAX_PATH); GetSpaceOnDisk(l[c]+':\', True, FreeMB, TotalMB) Result[n].Letter:=l[c]+':'; Result[n].VolumeName:=Trim(Vl[s]); Result[n].FreeSpace:=FreeMB; Result[n].PSize:=TotalMB; end; end; //MsgBox(Result[n].fileSystemname, mbInformation, mb_Ok); End; Code:
if GetDriveType(l[c]+':')=DRIVE_FIXED then
begin
n:=GetArrayLength(Result);
s:=GetArrayLength(Vl);
SetArrayLength(Result,n+1);
SetArrayLength(Vl,s+1);
Vl[s]:=StringOfChar(' ',256);
GetVolumeInformation (l[c]+':\',Vl[s],MAX_PATH,0,0,0,PAnsiChar(Fsn),MAX_PATH);
GetSpaceOnDisk(l[c]+':\', True, FreeMB, TotalMB)
Result[n].Letter:=l[c]+':';
Result[n].VolumeName:=Trim(Vl[s]);
Result[n].FreeSpace:=FreeMB;
Result[n].PSize:=TotalMB;
end;
|
| Thread Tools | Search this Thread |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| INNO TROUBLESHOOT - Tutorials and Answers about INNO Setup | REV0 | Conversion Tutorials | 129 | 21-05-2021 05:51 |
| INNO TUTORIAL - Using Unicode and ANSI Versions of INNO Setup | REV0 | Conversion Tutorials | 51 | 26-03-2015 06:57 |
| Frequently Asked Questions | Joe Forster/STA | PC Games - Frequently Asked Questions | 0 | 29-11-2005 09:48 |