`
qq173684423
  • 浏览: 28291 次
社区版块
存档分类
最新评论

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;

 

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

 (待续)

分享到:
评论

相关推荐

    Inno_Setup入门——Pascal脚本.doc

    在Inno Setup中,Pascal脚本是一种强大的工具,用于自定义安装过程的行为。通过编写Pascal脚本,你可以控制安装程序的各个阶段,提供更个性化的用户体验。以下是基于提供的标题、描述和部分内容的关键知识点: 1. *...

    innosetup脚本范例

    `[Code]`部分允许编写Pascal脚本,这使得InnoSetup具有了更高级的功能,如运行自定义逻辑、读写文件、交互式询问用户等。 9. **多语言支持** InnoSetup可以创建多语言安装包,通过`[Languages]`部分定义语言选项...

    Inno Setup入门教程

    - **基础知识**:掌握Inno Setup内置的Pascal脚本语言。 - **应用场景**: - 编写复杂逻辑。 - 自定义安装行为。 - 操作文件系统和注册表等。 #### 十九至二十二、Inno Setup类参考 - **基础知识**:深入学习...

    inno setup改变环境变量脚本

    在Inno Setup中,我们可以通过[Code]部分来编写Pascal脚本,实现环境变量的添加。以下是一个简单的示例: ```pascal [Code] function InitializeSetup(): Boolean; begin // 添加环境变量 AddEnvironmentVariable...

    Inno Setup 6.2.1以及中文语言包

    "innosetup-6.2.1.exe"是Inno Setup 6.2.1的主要安装程序文件,用户可以通过运行这个文件来安装或升级Inno Setup的开发环境。这个执行文件可能包含所有必要的组件,如编译器、脚本编辑器和帮助文档,使得用户可以在...

    Innosetup软件及安装界面美化iss脚本

    标题中的"Innosetup软件及安装界面美化iss脚本"指的是利用InnoSetup来制作安装程序,并通过定制的ISS(Inno Setup Script)脚本来实现安装界面的美化。ISS脚本是InnoSetup的核心,它是一个文本文件,包含了所有关于...

    Inno setup 5 脚本实例。

    7. **[Code]** 部分:这是Inno Setup脚本的亮点,允许编写 Pascal 代码来执行更复杂的逻辑,如自定义对话框、文件解压验证、安装前后的脚本等。 以`SteamMods-SetupScript-1.6.iss`为例,我们可以推测这是一个与...

    Inno Setup 中文教程

    3. **源代码脚本**:Inno Setup的核心是基于 Pascal 脚本语言的源代码,用于定义安装过程中的各种行为,包括文件复制、注册表操作、启动菜单创建等。 二、脚本语法 1. **脚本结构**:Inno Setup脚本由几大块组成,...

    inno setup 5脚本实现检测进程是否运行并结束.rar

    《Inno Setup 5 脚本:检测与结束进程详解》 Inno Setup是一款流行的安装包制作工具,尤其在Windows平台下,它以其简洁易用的特性深受开发者喜爱。Inno Setup 5是该系列的最新版本,提供了一系列强大的功能,其中...

    使用Inno setup 制作安装包 安装包脚本调用动态链接库实现特殊处理

    本篇将深入探讨如何利用Inno Setup来制作安装包,并通过安装脚本调用动态链接库(DLL)以实现特定功能。 一、Inno Setup基础 Inno Setup是一个开源的安装包制作工具,它支持创建自解压可执行文件、传统安装程序和...

    InnoSetup中文帮助

    - **介绍**:InnoSetup内置了一个完整的Pascal脚本引擎,允许开发者编写复杂的安装逻辑。 - **创建[Code]段**:定义脚本代码的位置。 - **事件函数**:用于响应安装过程中的特定事件,如安装前、安装后等。 - **脚本...

    Inno Setup 5.zip

    3. **脚本支持**:Inno Setup 5基于 Pascal 脚本语言,开发者可以通过编写脚本来实现复杂的安装逻辑,如文件的复制、注册表操作、启动服务等。 4. **多语言支持**:Inno Setup 5支持多语言安装包,可以方便地为不同...

    Inno Setup 6.1.0+ Chinese-Simplified-Translation 中文包

    1. **编写脚本**:Inno Setup使用基于Pascal的脚本语言,开发者可以通过编写脚本来定义安装过程中的各种行为,如安装路径、文件复制、注册表操作等。 2. **编译脚本**:使用Inno Setup的编译器将脚本转换为可执行的...

    自定义Inno Setup安装界面(仿QQ安装界面)

    总之,自定义Inno Setup安装界面涉及对Pascal脚本语言的理解,以及对Inno Setup API的熟练运用。通过精心设计和编程,我们可以创建出与QQ安装界面类似的用户体验,提升软件的首印象和专业度。同时,对于Java项目的...

    inno setup中文帮助文档

    1. **Inno Setup概述**:解释Inno Setup的基本概念,它的功能特性,以及与其它安装制作工具的区别。这通常会涉及到它支持自定义安装路径、创建桌面快捷方式、注册文件、安装程序的多语言支持等功能。 2. **安装脚本...

    inno完整打包脚本

    Inno Setup的脚本语言基于Pascal,但简化了很多,易于学习和使用。 2. **Inno Script Studio** 虽然Inno Setup支持文本编辑器编写脚本,但为了提高效率和减少错误,通常推荐使用Inno Script Studio这样的可视化...

    使用inno setup将python exe制作安装包详细教程(csdn)————程序.pdf

    Inno Setup使用基于 Pascal 的脚本语言,你需要创建一个`.iss`文件来定义安装包的结构和行为。在新建的`.iss`文件中,你需要指定输出目录(outputdir),即安装包编译后生成的文件存放位置。确保这个输出目录与你要...

    Inno工具,含InnoSetup和ISTool汉化可视化工具(汉化)

    1. **脚本驱动**:InnoSetup使用基于 Pascal 的简单脚本来定义安装过程,包括文件复制、注册表操作、启动菜单项创建等,这使得定制安装过程变得灵活且易于理解。 2. **多语言支持**:InnoSetup允许创建多语言安装包...

    inno setup文件+脚本实例

    Inno Setup的核心在于它的脚本语言,这是一种基于Pascal的语法,用于定义安装过程中的各种细节,如安装路径、文件列表、注册表项、启动菜单项等。脚本文件通常以`.iss`为扩展名,它是整个安装程序的蓝图。 在提供的...

    inno setup 入门学习的官方demo+网上案例+自己的案例

    1. **脚本语言**:Inno Setup通过其独特的脚本语言来编写安装过程,这使得你可以精确控制安装的每一个步骤。脚本主要由一系列的指令组成,如`[Setup]`、`[Files]`、`[Tasks]`等。 2. **安装界面**:Inno Setup提供...

Global site tag (gtag.js) - Google Analytics