我创建和安装使用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]
; 对于这一点,你需要使用ExtractTemporaryFile
和Exec
。 这将您的游戏之前安装它,可以让你检查退出代码来处理错误,并重新启动要求如果需要的话。 请参阅附带的Inno有关详细信息,示例脚本,但是这可能比你需要的DX安装更为复杂。
是否要捆绑Web的安装程序或完整安装程序DX您还需要决定。 前者较小,但需要上网在安装时; 后者将让您的安装较大,但不需要上网。 如果您是从DVD进行安装,则后者是最好的选择(你可以直接从运行{src}
而不是捆绑它的[Files]
在这种情况下)。
文章来源: Prompting to install DirectX in an Inno installer
标签:
inno-setup