2012-01-04 196 views
2

我在Inno-Setup网站上没有找到关于DirectX安装的任何提示。那么,是否有任何示例安装脚本?我知道,我必须要添加到[运行] sction是这样的:如何从Inno-setup安装DirectX redistributable?

Filename: "{src}\DirectX\DXSETUP.exe"; WorkingDir: "{src}\DirectX"; Parameters: "/silent"; Check: DirectX; Flags: waituntilterminated; BeforeInstall: DirectXProgress; 

但如何把它列入到安装文件,如何提取它,ECT(临时文件夹?)?

回答

6

要将其包含在设置中,您可以将其安装到{tmp},然后从那里安装[Run]

安装这种要求正确的方法是在代码中提取并呼吁它Exec()PrepareToInstall()事件功能:

function PrepareToInstall(var NeedsRestart: Boolean): String; 
var 
    InstallerResult: integer; 
begin 
    //Check if .Net is available already 
    if NeedsDirectX() then begin 
    ExtractTemporaryFile('DXSETUP.exe'); 
    if Exec(ExpandConstant('{tmp}\DXSETUP.exe'), '', '', SW_SHOW, ewWaitUntilTerminated, InstallerResult) then begin 
     case InstallerResult of 
     0: begin 
      //It installed successfully (Or already was), we can continue 
     end; 
     else begin 
      //Some other error 
      result := 'DirectX installation failed. Exit code ' + IntToStr(InstallerResult); 
     end; 
     end; 
    end else begin 
     result := 'DirectX installation failed. ' + SysErrorMessage(InstallerResult); 
    end; 
    end; 
end; 

的ISXKB有article on how to detect the versions installed

+0

此函数'NeedsDirectX()'从哪里来? – 2012-12-18 14:05:41

相关问题