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;
View Code

    解释一下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;

  

原文地址:https://www.cnblogs.com/tommy-huang/p/4121058.html