Inno Setup设置在安装Finished页面,点击finish后打开网页
在安装的最后一个页面FinishPage中点击Finished然后打开一个网页
这个功能貌似很简单,不就是在点击finish按钮给它绑定事件,问题立马解决。
在普通的桌面应用程序开发中的确是这样做的,可是这里是InnoSetup
这个事件不是你能控制的,
所以我们应该换一种思维,点击finish后,相当于程序全部安装完毕了,而在InnoSetup的脚本中,我们可以获取到这个状态
先上代码:
第一种方法:CurStepChanged:按安装的步骤的改变
1 //这个方法innosetup会自动调用的,当安装步骤有所改变时,它就会被触发 2 procedure CurStepChanged(CurStep: TSetupStep); 3 var 4 ErrorCode: Integer; 5 isVerySilent: boolean; 6 j:Cardinal; 7 8 begin 9 //ssDone,就是点击Finish后的状态,后面会有详细解释 10 if(CurStep=ssDone) then 11 begin 12 for j := 1 to ParamCount do 13 begin 14 //这里是判断程序是否为静默安装,是则不打开网页 15 if(CompareText(ParamStr(j),'/verysilent')=0) then 16 isVerySilent := true 17 end; 18 19 if(not isVerySilent) then 20 begin 21 ShellExec('open','http://www.baidu.com','','',SW_SHOWNORMAL,ewNoWait,ErrorCode); 22 end; 23 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;