View Single Post
  #95  
Old 30-11-2013, 09:23
altef_4's Avatar
altef_4 altef_4 is offline
Registered User
 
Join Date: Mar 2012
Location: Ukraine
Posts: 361
Thanks: 248
Thanked 1,022 Times in 239 Posts
altef_4 is on a distinguished road
here is new example, without XML module, if you use IS 5.5.4, you can uncommend first line to make this example better
Code:
;#define InnoSetup5_5_4
[Setup]
AppName=Get_SYS_INFO
AppVersion=0.1b
CreateAppDir=no
VersionInfoDescription=altef_4
OutputBaseFilename=Get_SYS_INFO
OutputDir=.

[Icons]
Name: {userdesktop}\Far Cry 3 DX9; Filename: {app}\bin\FarCry3.exe; Parameters: -offline; WorkingDir: {app}\bin; Check: DX9;
Name: {userdesktop}\Far Cry 3 DX11; Filename: {app}\bin\FarCry3_D3D11.exe; Parameters: -offline; WorkingDir: {app}\bin; Check: DX11;

[Code]
var GetDXV:integer;
function DX9:boolean;
begin
  if GetDXV>=9 then Result:=True else Result:=False;
end;

function DX10:boolean;
begin
  if GetDXV>=10 then Result:=True else Result:=False;
end;

function DX11:boolean;
begin
  if GetDXV>=11 then Result:=True else Result:=False;
end;

function GetDX:Integer;
var
  dxv:string;
  buf:ansistring;
begin
Result:=9;
while Not FileExists(ExpandConstant('{tmp}')+'\dxdiag.txt') do Sleep(100);
LoadStringFromFile(ExpandConstant('{tmp}')+'\dxdiag.txt',buf);
delete(buf,1,Pos('DDI Version: ',buf));
dxv:=Copy(buf,13,2);
StringChange(dxv,#13,'');
Result:=StrToIntDef(dxv,9);
end;

function InitializeSetup(): Boolean;
var
  res:integer;
begin
  Exec(ExpandConstant('{win}\system32\dxdiag.exe'),'/whql:off /t '+ExpandConstant('{tmp}')+'\dxdiag.txt',ExpandConstant('{tmp}'),0,ewNoWait,res)
  Result:=True;
end;
#ifdef InnoSetup5_5_4
procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
begin
  if CurProgress = MaxProgress-1 then GetDXV:=GetDX;
end;
#else
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep=ssInstall then GetDXV:=GetDX;
end;
#endif

Last edited by altef_4; 01-12-2013 at 07:45.
Reply With Quote