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

Inno Setup入门(十三)——Pascal脚本(2)

 
阅读更多

事件函数(2)

function CheckPassword(Password: String): Boolean;

如果安装程序在Pascal 脚本中发现该函数,它自动显示密码页并调用CheckPassword 检查密码。返回True 表示接受密码,返回False 拒绝。测试代码如下:

function CheckPassword(Password: String): Boolean;

begin

       if Password='castor' then

              result:=true;

end;

       在安装过程中将会出现询问安装密码的页面,如果输入错误将会出现下面的对话框:

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

为了避免在 [Code] 段内部贮存真实的密码,最好使用其他的信息进行比较,例如使用GetMD5OfString(Password)计算实际密码的MD5值保护实际密码。

function NeedRestart(): Boolean;

       如果返回True,安装程序在安装结束时提示用户重启系统,False则不提示。测试代码如下:

 

function NeedRestart(): Boolean;

begin

       result:=True;

end;

 

在安装完成之后的finish页面,将会出现如下的选项:

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

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoGroupInfo, MemoTasksInfo: String): String;

       如果脚本中存在该函数,则在Ready to Install页面变为活动页的时候自动调用该函数,该函数返回一段文本,该文本显示于Ready to Install页面中的设置备注中,并且该文本将用NewLine参数分割为一个单独的多行字符串,参数Space指代空格,测试是六个,其它参数将包含安装程序用于设置段的字符 (可能是空的)。例如MemoDirInfo 参数包含选择目录段的字符串。测试代码如下:

 

function UpdateReadyMemo(Space, NewLine, MemoUserInfoInfo, MemoDirInfo, MemoTypeInfo, MemoComponentsInfo, MemoComponentsInfo, MemoTasksInfo: String): String;

var

  res: String;

begin

       res:='UpdateReadyMemo Function is here'+NewLine+'This is the Second Line';

       res:=res+Space+'And with Six Spaces';

       res:=res+NewLine+'MemoUserInfoInfo'+MemoUserInfoInfo;

       res:=res+NewLine+'MemoDirInfo'+MemoDirInfo;

       res:=res+NewLine+'MemoTypeInfo'+MemoTypeInfo; 

       res:=res+NewLine+'MemoComponentsInfo'+MemoComponentsInfo;

       res:=res+NewLine+'MemoComponentsInfo'+MemoComponentsInfo;

       res:=res+NewLine+'MemoTasksInfo'+MemoTasksInfo;

       Result:=res;

end;

 

运行后在安装前会出现确认页面:

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

 

标记黄色文字下面是各个参数的内容。

procedure RegisterPreviousData(PreviousDataKey: Integer);

本过程实现在自定义向导页中贮存用户输入的设置,在脚本中放入本函数,并调用SetPreviousData(PreviousDataKey, ...) 替换它,每次设置一个。

function CheckSerial(Serial: String): Boolean;

该函数将在用户信息向导页中自动出现一个序列号对象 (前提是[Setup] 段中使用UserInfoPage=yes)。返回True 表示接受序列号,返回False 拒绝。注意:当使用序列号时,该软件并没有被加密,而且Inno Setup 源代码是免费获取的,有经验的人从安装程序中删除序列号保护并不是很困难的事。本函数只是方便用户在你的应用程序中仔细检查输入的序列号 (贮存在{userinfoserial} 常量)。测试代码如下:

 

function CheckSerial(Serial: String): Boolean;

begin

       if Serial='ABCDEF-1234567890' then

              Result:=True;

end;

 

       在安装过程中将会出现一个页面,如下:

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

    如果Serial Number不正确,Next按钮将会无效,只有正确的序列号才能使得Next按钮有效,再次说明:不要指望使用这种方法保护你的软件。

function GetCustomSetupExitCode: Integer;

返回一个非零值,命令安装程序返回一个自定义退出代码,本函数只在安装程序运行完成并且退出代码已是零时才调用。常见的退出代码如下:

代码

说明

0

安装程序成功完成

1

安装程序初始化失败

2

用户在实际安装前点击取消,或者在开始的“这将安装……”时选择否

3

当准备到下一个安装阶段的时候发生致命错误,只有在比较极端的情况下发生这种错误,例如内存耗尽。

4

实际安装过程中发生致命错误

5

用户在实际安装过程中点击取消或者在“终止-重试-忽略”对话框中点击了终止

6

安装程序被调试器强制终止

7

准备安装阶段发现安装无法进行

8

准备安装阶段发现安装无法进行,并且系统需要重启来解决问题

例如在用Inno Setup调试编译后的安装文件时,按下Ctrl+F2后,下面的调试输出将会提示如下:

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

退出代码为6,可见安装程序被调试器强制终止。

function PrepareToInstall(var NeedsRestart: Boolean): String;

 

       在与安装阶段返回一个非空字符串命令安装程序停止,该字符串将会作为错误消息,设置NeedsRestartTrue将要求用户重启系统,该函数只在安装程序发现不能继续下去的时候才被调用。

分享到:
评论

相关推荐

    Inno_Setup入门——Pascal脚本.doc

    Inno Setup支持以下函数和过程。 function InitializeSetup(): Boolean; 该函数在安装程序初始化时调用,返回False 将中断安装,True则继续安装,测试代码如下: function InitializeSetup(): Boolean; begin ...

    Inno Setup 6.2.1以及中文语言包

    Inno setup是一款简便安装包工具,支持pascal脚本,几分钟就能生成标准Windows安装包。资源包括加密dll以及中文语言包

    Inno Setup:windows下安装程序制作软件,及打包模板

    Inno Setup使用Pascal脚本语言编写,因此对于Pascal程序员来说非常友好。同时,它还提供了一个易于使用的向导式界面,使得即使是非程序员也能够轻松地创建安装程序。 Inno Setup支持多种安装程序功能,如选择安装...

    inno setup 使用教程

    1. inno setup 各种格式修改 2. 使用pascal脚本 3. inno setup 类 4. 在inno中dll的使用

    Inno Setup 5.0.7 入门帮助中文文档 PDF

    快速制作出标准Windows2000风格的安装界面 Inno Setup提供源程序免费下载 当之无愧算是后起之秀 Inno Setup是一款免费的安装制作软件 小巧、简便、精美是其最大特点 Inno Setup支持pascal脚本

    inno setup中文PDF文档

    inno setup中文帮助文档,PDF 版本,中文版 Inno Setup用...Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务

    Inno Setup(安装包制作软件) 6.2.0 增强版+(Inno安装包解包工具.rar

    Inno Setup 是一个小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费下载。它虽不能与...

    Inno Setup帮助文档

    快速制作出标准Windows2000风格的安装界面  Inno Setup提供源程序免费下载  当之无愧算是后起之秀  Inno Setup是一款免费的安装制作软件  小巧、简便、精美是其最大特点 ... Inno Setup支持pascal脚本

    Inno Setup 5.4.2汉化版

    inno setup 是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准windows2000风格的安装界面,足以完成一般安装任务。该软件用delphi写成,其官方网站同时也提供源程序免费...

    Inno Setup 5.2.3 绿色汉化增强版

    Inno Setup 5.2.3 绿色汉化增强版 支持pascal脚本安装制作工具

    innosetup(Inno Setup)免费的安装制作软件

    Inno Setup 是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。

    Inno Setup v5.5.9.zip

    软件支持pascal脚本,软件最大的特点是小巧、简便、精美,使用该软件用户不必实际安装的应用程序访问其文件,而是直接提取Inno Setup的安装程序的内部文件,软件更优秀的地方在于,该应用程序被包裹在一个直观的布局...

    Inno Setup 提取工具 Inno Setup Unpacker 0.50 免费版.zip

    习惯使用的打包工具就是 Inno Setup,而 Inno Setup 是用于安装软件的流行程序。不幸的是,没有官方的解压程序-将文件从自解压的可执行文件中取出的唯一方法是运行它。对于使用 Inno Setup 创建的安装程序的用户,...

    innosetup-5.6.1

    Inno Setup 是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费...

    Inno Setup执行SQL脚本的方法.zip_inno setup_执行sql_脚本

    当然,既然Inno内嵌了Pascal语言用以扩展功能,理论上不是不可以应付复杂的安装过程,但实现起来要复杂一些。 比如对于在安装过程中连接数据库并执行SQL脚本这样的需求,使用InstallShield应该会简单地多,而Inno却...

    inno setup中文帮助文档

    inno setup的中文帮助文档。从基本用法到pascal脚本的使用,帮助文档里有对inno全面又清晰易懂的讲解。

    Inno Setup 5.4.2

    Inno Setup 是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。该软件用Delphi写成,其官方网站同时也提供源程序免费...

    Inno Setup中文版

    Inno Setup是一个安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准Windows2000风格的安装界面,足以完成一般安装任务。

    Inno setup 汉化增强版v5.3.10

    Inno SetupInno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快速制作出标准的安装界面

    InnoSetup绿色版

    完整的 Pascal 脚本引擎。 支持多语言安装,including right-to-left language support. 支持密码和加密安装。 后台安装和后台卸载。 Unicode 安装。(Windows 2000/XP 或更高) 全部源代码公开 (Borland Delphi ...

Global site tag (gtag.js) - Google Analytics