在安装的最后一个页面FinishPage中点击Finished然后打开一个网页
这个功能貌似很简单,不就是在点击finish按钮给它绑定事件,问题立马解决。
在普通的桌面应用程序开发中的确是这样做的,可是这里是InnoSetup
这个事件不是你能控制的,
所以我们应该换一种思维,点击finish后,相当于程序全部安装完毕了,而在InnoSetup的脚本中,我们可以获取到这个状态
先上代码:
第一种方法:CurStepChanged:按安装的步骤的改变
//这个方法innosetup会自动调用的,当安装步骤有所改变时,它就会被触发
procedure CurStepChanged(CurStep: TSetupStep);
var
ErrorCode: Integer;
isVerySilent: boolean;
j:Cardinal; begin
//ssDone,就是点击Finish后的状态,后面会有详细解释
if(CurStep=ssDone) then
begin
for j := to ParamCount do
begin
//这里是判断程序是否为静默安装,是则不打开网页
if(CompareText(ParamStr(j),'/verysilent')=) then
isVerySilent := true
end; if(not isVerySilent) then
begin
ShellExec('open','http://www.baidu.com','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
end;
解释一下InnoSetup的状态页面,和向导页面:
http://www.cnblogs.com/tommy-huang/p/4121229.html
第二种方法:CurPageChanged:按向导页面改变
//这个方法innosetup会自动调用的,当安装步骤有所改变时,它就会被触发
procedure CurPageChanged(CurPageID:Integer);
var
ErrorCode: Integer;
isVerySilent: boolean;
j:Cardinal; begin
//wpFinished,就是点击Finish后的状态,后面会有详细解释
if(CurPageID=wpFinished) then
begin
for j := 1 to ParamCount do
begin
//这里是判断程序是否为静默安装,是则不打开网页
if(CompareText(ParamStr(j),'/verysilent')=0) then
isVerySilent := true
end; if(not isVerySilent) then
begin
ShellExec('open','http://www.baidu.com','','',SW_SHOWNORMAL,ewNoWait,ErrorCode);
end;
end;