View Single Post
  #2  
Old 30-11-2013, 11:09
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
Quote:
Originally Posted by Razor12911 View Post
Altef, there's also DX 10.1 and I think DX 11.2;

Oh and, What about 9.0c or does it fall under 9?
just little change code

Code:
;#define InnoSetup5_5_4
[Setup]
AppName=Get_SYS_INFO
AppVersion=0.1c
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:string;

function DX9:boolean;
begin
  Case GetDXV of
    '9':    Result:=True;
    '9.0c': Result:=True;
    '10':   Result:=True;
    '10.1': Result:=True;
    '11':   Result:=True;
    '11.2': Result:=True;
  else
  Result:=False;
  end;
end;

function DX10:boolean;
begin
  Case GetDXV of
    '9':    Result:=False;
    '9.0c': Result:=False;
    '10':   Result:=True;
    '10.1': Result:=True;
    '11':   Result:=True;
    '11.2': Result:=True;
  else
  Result:=False;
  end;
end;

function DX11:boolean;
begin
  Case GetDXV of
    '9':    Result:=False;
    '9.0c': Result:=False;
    '10':   Result:=False;
    '10.1': Result:=False;
    '11':   Result:=True;
    '11.2': Result:=True;
  else
  Result:=False;
  end;
end;

function GetDX:string;
var
  dxv:string;
  buf:ansistring;
begin
Result:='';
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,Pos(' ',buf));
StringChange(dxv,#13,'');
Result:=dxv;
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; 30-11-2013 at 11:33.
Reply With Quote
The Following 3 Users Say Thank You to altef_4 For This Useful Post:
pakrat2k2 (01-12-2013), papas (14-10-2016), sentinelks (30-11-2013)