提示在安装程序的Inno安装DirectX(Prompting to install DirectX

2019-10-30 15:53发布

我创建和安装使用Inno Setup的一场比赛,我想提示用户,并询问他们是否要安装DirectX9的(我已经有一个子文件夹的完整安装DirectX文件),然后如果他们说安装为他们yes或no ...我不知道如何做到这一点,并且具有有限的编程知识。 请帮忙!

Answer 1:

使用此代码,以显示与问题,消息框,是/否按钮:

  // Ask the user a Yes/No question
  if MsgBox('Are you sure?', mbConfirmation, MB_YESNO) = IDYES then
  begin
     // User clicked Yes
     // Install the DirectX now... (see below)
  end;

而这种代码执行(发射)DXSETUP.exe

var
  ResultCode: Integer;

  // Launch DXSETUP and wait for it to terminate
  Exec('DXSETUP.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);

我认为你需要你的DirectX文件打包到您的安装程序并将其解压到{} TMP目录 - 或者你可以从CD / DVD运行(如例子)。

见先进DXSETUP这样一个问题: 如何从汇创设置安装DirectX可再发行?

如果您需要检测DX版本检查: http://www.vincenzo.net/isxkb/index.php?title=DirectX_-_How_to_detect_DirectX_version



Answer 2:

您可以使用[Tasks]进入向导页面促使他们是否安装/升级DX与否的一个显示一个复选框(你可以选择是否要在此被打勾或取消选中默认)。

对于实际安装时,最简单的方法是使用[Run]进入与Tasks:参数链接到[Tasks]你创建的条目; 但记住,这将你的游戏安装后,你将无法赶上它有可能引起的任何错误。 (这通常不是这样的事情的问题虽然)。

另一种选择是使用PrepareToInstall在事件函数[Code] ; 对于这一点,你需要使用ExtractTemporaryFileExec 。 这将您的游戏之前安装它,可以让你检查退出代码来处理错误,并重新启动要求如果需要的话。 请参阅附带的Inno有关详细信息,示例脚本,但是这可能比你需要的DX安装更为复杂。

是否要捆绑Web的安装程序或完整安装程序DX您还需要决定。 前者较小,但需要上网在安装时; 后者将让您的安装较大,但不需要上网。 如果您是从DVD进行安装,则后者是最好的选择(你可以直接从运行{src}而不是捆绑它的[Files]在这种情况下)。



文章来源: Prompting to install DirectX in an Inno installer
标签: inno-setup