zoukankan      html  css  js  c++  java
  • Inno Setup入门(十二)——Pascal脚本(1)

    事件函数(1)

    Inno Setup支持以下函数和过程。

    function InitializeSetup(): Boolean;

    该函数在安装程序初始化时调用,返回False 中断安装,True则继续安装,测试代码如下:

    function InitializeSetup(): Boolean;

    begin

      Result := MsgBox('安装程序正在初始化,你确定要安装吗?', mbConfirmation, MB_YESNO) = idYes;

      if Result = False then

        MsgBox('你放弃了安装,程序直接退出', mbInformation, MB_OK);

    end;

    procedure InitializeWizard();

    该过程在开始的时候改变向导或者向导页,不要指望使用InitializeSetup函数实现改变向导页的功能,因为InitializeSetup函数触发时向导窗口并不存在。

    procedure DeinitializeSetup();

           该过程在安装终止时被调用,注意及时在用户没有安装任何文件之前退出也会被调用。测试代码如下:

    procedure DeinitializeSetup();

    begin

        msgbox('DeinitializeSetup is called',mbInformation, MB_OK);

    end;

    procedure CurStepChanged(CurStep: TSetupStep);

           该过程提供用户完成预安装和安装之后的任务,更多的是提供了安装过程中的状态。参数CurStep=ssInstall是在程序实际安装前(所有的路径等都配置好之后准备写入文件钱),CurStep=ssPostInstall是实际安装完成后,而CurStep=ssDone是在一次成功的安装完成后、安装程序终止前(即点击finish按钮后执行)。测试代码如下:

    procedure CurStepChanged(CurStep: TSetupStep);

    begin

           if CurStep=ssinstall then

                  MsgBox('准备写入文件了', mbInformation, MB_OK);

           if CurStep=ssPostinstall then

                  MsgBox('文件复制完成', mbInformation, MB_OK);        

           if CurStep=ssDone then

                  MsgBox('软件成功安装', mbInformation, MB_OK);

    end;

    三个步骤的截图如下:

    Inno Setup入门(十二)——Pascal脚本(1) - Castor - 趁年轻,多折腾~~

     

    Inno Setup入门(十二)——Pascal脚本(1) - Castor - 趁年轻,多折腾~~

    Inno Setup入门(十二)——Pascal脚本(1) - Castor - 趁年轻,多折腾~~

    function NextButtonClick(CurPageID: Integer): Boolean;

    当用户单击下一步按钮时调用。如果返回True,向导将移到下一页;如果返回False,它仍保留在当前页。测试代码如下:

    function NextButtonClick(CurPageID: Integer): Boolean;

    begin

           Result := MsgBox('到下一页去吗?', mbConfirmation, MB_YESNO) = idYes;

    end;

    截图如下:

     

    Inno Setup入门(十二)——Pascal脚本(1) - Castor - 趁年轻,多折腾~~

    function BackButtonClick(CurPageID: Integer): Boolean;

    和前面的NextButtonClick函数相反,当用户单击返回按钮时调用。如果返回True,向导将移到前;如果返回False,它仍保留在当前页,测试代码略。

    procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);

           当用户单击取消按钮或单击窗口中的关闭按钮时调用。Cancel 参数指定取消进程是否该发生;默认为TrueConfirm 参数指定是否显示“退出安装程序吗?”的消息框;默认为True。如果Cancel 设为False,那么Confirm 的值将被忽略。测试代码如下:

    procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);

    begin

           cancel:=False;

    end;

    和你所预料的一样,本段代码将会导致Cancel按钮失效,即逼迫用户完成安装或者采用非正常方式终止安装程序。

    procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);

    begin

           Confirm:=false;

    end;

    而上面的这段代码将会在用户点击Cancel按钮之后直接退出,不需要做进一步的确认。

    function ShouldSkipPage(PageID: Integer): Boolean;

           向导调用这个事件函数确定是否在所有页或不在一个特殊页 (PageID 指定显示。如果返回True,将跳过该页;如果你返回False,该页被显示。注意这个事件函数不被wpWelcomewpPreparing wpInstalling 页调用,还有安装程序已经确定要跳过的页也不会调用 (例如,没有包含组件安装程序的wpSelectComponents)。测试代码如下:

    function ShouldSkipPage(PageID: Integer): Boolean;

    begin

           if PageID=wpSelectDir then

           Result:=True;

    end;

    本段代码将会使得安装程序跳过选择安装目录的页面,即如下页面是不会被显示的:

     

    Inno Setup入门(十二)——Pascal脚本(1) - Castor - 趁年轻,多折腾~~

    可用的PageID有: wpLicense, wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir, wpSelectComponents, wpSelectProgramGroup, wpSelectTasks, wpReady, wpInfoAfter, wpFinished

    procedure CurPageChanged(CurPageID: Integer);

           在新向导页 (CurPageID 指定显示后调用。测试代码如下:

    procedure CurPageChanged(CurPageID: Integer);

    begin

           Msgbox('ha,new page!',mbInformation, MB_OK);

    end;

           该段代码将会导致每出现一个新的一面的时候就会弹出一个消息框。

     (待续)

     
     

    转自:http://www.360doc.com/content/13/0327/14/4221543_274247385.shtml

  • 相关阅读:
    如何在应用系统中实现数据权限的控制功能(2)
    客户关系管理系统中对客户及相关数据的导入导出分析处理
    基于MVC4+EasyUI的Web开发框架经验总结(10)--在Web界面上实现数据的导入和导出
    基于MVC4+EasyUI的Web开发框架经验总结(9)--在Datagrid里面实现外键字段的转义操作
    基于MVC4+EasyUI的Web开发框架经验总结(8)--实现Office文档的预览
    基于MVC4+EasyUI的Web开发框架经验总结(7)--实现省份、城市、行政区三者联动
    基于MVC4+EasyUI的Web开发框架经验总结(6)--在页面中应用下拉列表的处理
    WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭
    .NET项目开发的几个非常重要的项目设置
    使用NVelocity生成内容的几种方式
  • 原文地址:https://www.cnblogs.com/xiurui12345/p/3096576.html
Copyright © 2011-2022 走看看