Inno Setup 安装向导各个页面详解

概览

表中描述了使用Inno Setup生成的安装包在安装过程中各个页面的字段和对应的说明信息。后文会对各个页面的参数做进一步解释说明。

字段说明
wpWelcome欢迎页
wpLicense许可协议
wpPassword密码
wpInfoBefore信息
wpUserInfo用户信息
wpSelectDir选择目标位置
wpSelectComponents选择组件
wpSelectProgramGroup选择开始菜单文件夹
wpSelectTasks选择任务
wpReady准备安装
wpPreparing正在准备安装
wpInstalling正在安装
wpInfoAfter信息
wpFinished安装完成

Page1、wpWelcome

可设置是否显示欢迎页!

可设参数为yes和no,默认为yes,不显示欢迎页。

Example:
[Setup]
DisableWelcomePage=no   //显示欢迎页

Page2、wpLicense

指定可选许可协议文件的名称(.txt 或 .rtf(富文本)格式),该文件将在用户选择程序的目标目录之前显示。运行编译器时,该文件必须位于安装的源代码目录中,除非指定了完全限定路径名或路径名前缀为 “compiler:”,在这种情况下,编译器会在编译器目录中查找该文件。

Example:
[Setup]
LicenseFile=license.txt

如果用户选择的语言设置了 LicenseFile 参数,则该指令将被忽略。

Example:
[Setup]
LicenseFile=license.txt   //在languages中设置LicenseFile,此条设置会被忽略

[Languages]
Name: "cn"; MessagesFile: "compiler:Languages\ChineseSimplified.isl" ; LicenseFile:"D:\INNO\test\files\用户许可协议-中文.txt"
Name: "en"; MessagesFile: "compiler:Languages\Default.isl"; LicenseFile:"D:\INNO\test\files\用户许可协议-英文.txt"

Page3、wpPassword

指定在安装开始时提示用户输入的密码。

使用密码时,可以考虑将 “加密 ”也设置为 “是”,否则文件将以纯文本形式存储,别人通过逆向工程获取文件并不困难。

密码本身不会以纯文本形式存储,而是以 160 位 SHA-1 哈希值和 64 位随机数加盐的形式存储。(注:启用加密后,存储的哈希值不会用于加密密钥,而是用不同的盐值生成不同的哈希值)。

Example:
[Setup]
Password=123     //设置安装密码
Encryption=yes   //将 “加密 ”设置为 “是”

Page4、wpInfoBefore

指定可选 “自述文件 ”的名称,文件格式为 .txt 或 .rtf(富文本),在用户选择程序的目标目录之前显示。运行编译器时,该文件必须位于安装的源代码目录中,除非指定了完全限定路径名或路径名前缀为 “compiler:”,在这种情况下,编译器会在编译器目录中查找该文件。

Example:
[Setup]
InfoBeforeFile=D:\INNO\test\files\InfoBefore.txt

如果用户选择的语言设置了 InfoBeforeFile 参数,该指令实际上将被忽略。

Page5、wpUserInfo

可设参数为yes和no,默认为no。

如果设置为 “yes”,安装程序将显示 “用户信息向导 ”页面,要求输入用户姓名、组织机构和序列号。用户输入的值将存储在 {userinfoname}、{userinfoorg} 和 {userinfoserial} 常量中。您可以在 [Registry] 或 [INI] 条目中使用这些常量来保存它们的值,以便以后使用。

要显示序列号字段,必须有 CheckSerial 事件函数。

DefaultUserInfoName、DefaultUserInfoOrg 和 DefaultUserInfoSerial 指令决定显示的默认名称、组织和序列号。如果 “UsePreviousUserInfo ”为 “是”(默认值),且 Setup 发现已安装了同一应用程序的上一版本,则会使用之前输入的名称、组织和序列号。

在静默安装时,将使用默认的用户名、机构和序列号值。安装程序不会检查用户名是否为空(因为用户无法更正),但仍会检查序列号。

Example:
[Setup]
UserInfoPage=yes

Page6、wpSelectDir

可设参数为auto、yes和no,默认为auto。

如果设置为 “是”,安装程序将不显示 “选择目标位置 ”向导页面。

如果设置为 “自动”,启动时安装程序将在注册表中查找是否已经安装了相同的应用程序,如果是,则不会显示 “选择目标位置 ”向导页面。

如果不显示 “选择目标位置 ”向导页面,则将始终使用默认目录名。

Example:
[Setup]
DisableDirPage=no

Page7、wpSelectComponents

本节为可选项。它定义了 Setup 将在设置类型自定义向导的 “选择组件 ”页面上显示的所有组件。

组件本身没有任何作用:它需要与其他安装项 “链接”。请参阅组件和任务参数。

下面是[组件]部分的示例:

Example:
[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help Files"; Types: full
Name: "help\english"; Description: "English"; Types: full
Name: "help\dutch"; Description: "Dutch"; Types: full

上述示例生成了四个组件: 一个 “main”组件,如果最终用户选择了名称为 “full ”或 “compact ”的类型,它就会被安装;一个 “help ”组件,它有两个子组件,只有在最终用户选择了 “full ”类型时才会被安装。

以下是支持的参数列表:

Name

组件的内部名称。

组件名称中 \ 或 / 字符的总数称为组件的级别。任何级别为 1 或以上的组件都是子组件。列在子组件之前、级别比子组件低 1 的组件是父组件。与子组件具有相同父组件的其他组件为同级组件。

如果父组件未被选中,则子组件无法被选中。如果父组件的所有子组件都未被选中,则父组件也无法被选中,除非有一个组件参数直接引用了父组件,或者父组件包含 checkablealone 标志。

如果同级组件有排他性标记,则只能选择其中一个。

Description

组件的描述,可包括常量。该说明将在安装过程中显示给最终用户。

Types

该组件所属类型的空格分隔列表。如果最终用户从该列表中选择了一种类型,则将安装该组件。

如果不使用固定标记,Setup 将忽略此列表中的任何自定义类型(使用 iscustom 标记的类型)。

ExtraDiskSpaceRequired

此组件所需的额外磁盘空间,类似于 [Setup] 部分的 ExtraDiskSpaceRequired 指令。

Flags

该参数是一组额外选项。可用空格分隔多个选项。支持以下选项:

checkablealone

指定当该组件没有任何子组件时,可以检查该组件。默认情况下,如果没有 “组件 ”参数直接引用该组件,取消选中该组件的所有子组件将导致该组件被取消选中。

dontinheritcheck

指定当父级组件被选中时,该组件不应自动变为被选中。对顶层组件无影响,不能与 exclusive 标志结合使用。

exclusive

指示 Setup 将此组件与带有 exclusive 标志的同级组件互斥。

fixed

指示安装过程中最终用户不能手动选择或取消选择此组件。

restart

指示 Setup 在安装该组件时要求用户重启系统,无论是否有必要(例如,由于 [Files] 部分的条目带有 restartreplace 标志)。与 AlwaysRestart 类似,但针对每个组件。

disablenouninstallwarning

指示 Setup 在用户取消选择已安装的组件后,不要警告用户该组件不会被卸载。

根据组件的复杂程度,您可以尝试使用 [InstallDelete] 部分和此标记来自动 “卸载 ”已取消选择的组件。

Page8、wpSelectProgramGroup

可设参数为auto、yes和no,默认为auto。

如果设置为 “是”,安装程序将不显示 “选择开始菜单文件夹 ”向导页面。

如果设置为 “自动”,启动时安装程序将在注册表中查找是否已安装相同的应用程序,如果已安装,则不会显示 “选择开始菜单文件夹 ”向导页面。

如果不显示 “选择开始菜单文件夹 ”向导页面,系统将始终使用默认的开始菜单文件夹名称。

Page9、wpSelectTasks

本部分为可选部分。它定义了安装过程中 Setup 将执行的所有用户自定义任务。这些任务在 “选择附加任务 ”向导页面上显示为复选框和单选按钮。

任务本身没有任何作用:它需要与其他安装条目 “链接”。请参阅组件和任务参数。

下面是 [任务] 部分的示例:

[Tasks]
Name: desktopicon; Description: "Create a &desktop icon"; GroupDescription: "Additional icons:"; Components: main
Name: desktopicon\common; Description: "For all users"; GroupDescription: "Additional icons:"; Components: main; Flags: exclusive
Name: desktopicon\user; Description: "For the current user only"; GroupDescription: "Additional icons:"; Components: main; Flags: exclusive unchecked
Name: quicklaunchicon; Description: "Create a &Quick Launch icon"; GroupDescription: "Additional icons:"; Components: main; Flags: unchecked
Name: associate; Description: "&Associate files"; GroupDescription: "Other tasks:"; Flags: unchecked
显示效果

以下是支持的参数列表:

Name

任务的内部名称。

任务名称中 \ 或 / 字符的总数称为任务的级别。任何级别为 1 或以上的任务都是子任务。在子任务之前列出的、级别比子任务低 1 的任务是父任务。与子任务具有相同父任务的其他任务是同级任务。

如果父任务未被选中,则子任务无法被选中。如果父任务的子任务都未被选中,则父任务也无法被选中,除非任务参数直接引用了父任务,或者父任务包含 checkablealone 标志。

如果同级任务有排他性标记,则只能选择其中一个。

Description

任务描述,可包括常量。该说明将在安装过程中显示给最终用户。

GroupDescription

一组任务的组描述,可以包括常量。具有相同组描述的连续任务将在文本标签下方分组。文本标签显示组描述。

Components

该任务所属组件的空格分隔列表。如果最终用户从该列表中选择了一个组件,则会显示该任务。不带 Components 参数的任务条目将始终显示。

Flags

该参数是一组额外选项。可用空格分隔多个选项。支持以下选项:

checkablealone

指定当任务没有任何子任务时,可以检查该任务。默认情况下,如果没有任务参数直接引用该任务,取消选中该任务的所有子任务将导致该任务被取消选中。

checkedonce

指示 Setup 在发现同一应用程序的旧版本已安装时,应取消选中该任务。

如果 “UsePreviousTasks”[Setup] 部分指令为 “否”,则该标记将被禁用。

dontinheritcheck

指定当任务的父级任务被选中时,该任务不应自动被选中。对顶层任务无效,不能与 exclusive 标志结合使用。

exclusive

指示 Setup 将此任务与同样带有 exclusive 标志的同级任务互斥。

restart

如果选择了该任务,则指示 Setup 在安装结束时要求用户重启系统,无论是否有必要(例如,由于 [Files] 部分的条目带有 restartreplace 标志)。与 AlwaysRestart 类似,但针对每个任务。

unchecked

指示安装程序取消选中该任务。

Page10、wpReady

可设参数为yes和no,默认为no。

如果设置为 “是”,安装程序将不显示 “准备安装 ”向导页面。

当安装程序未静默运行时,如果在 “准备安装 ”向导页面之前尚未显示其他向导页面,则该指令将被忽略。

将此设置为 “是 ”不会自动将新的最后一个预安装向导页面上的 “下一步 ”按钮标题更改为 “安装”。您必须手动更改。例如,如果新的最后一个预安装向导页面是 “选择程序组 ”页面:

Example:
[Setup]
DisableReadyPage=yes

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID = wpSelectProgramGroup then
    WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall)
  else
    WizardForm.NextButton.Caption := SetupMessage(msgButtonNext);
end;

Page11、wpPreparing

通常情况下,安装程序不会在此页面停止或暂停。只有当安装程序确定无法继续或检测到应用程序使用了需要更新的文件时,才会停止或暂停。

如果 PrepareToInstall 事件函数返回错误,或者 [Files] 和 [InstallDelete] 部分中指定的一个或多个文件被(其他安装程序)排队等待在下次重启时替换或删除,就会发生前一种情况。在这种情况下,系统会告诉用户需要重新启动计算机,然后再次运行安装程序。请注意,静默安装时也会执行此检查,但任何信息都会显示在消息框中,而不是向导页面内。

如果将 “CloseApplications ”设置为 “是 ”或 “强制”,就会出现后一种情况。

Page12、wpInstalling

在实际安装过程中显示。

Page13、wpInfoAfter

指定可选的 “readme ”文件(.txt 或 .rtf(富文本)格式)的名称,该文件将在安装成功后显示。运行编译器时,该文件必须位于安装的源代码目录中,除非指定了完全限定路径名或路径名前缀为 “compiler:”,在这种情况下,编译器会在编译器目录中查找该文件。

与 isreadme 文件不同的是,该文本将作为向导的一个页面显示,而不是在单独的记事本窗口中显示。

Example:
[Setup]
InfoAfterFile=D:\INNO\test\files\InfoAfter.txt

如果用户选择的语言设置了 InfoAfterFile 参数,则该指令将被忽略。

Page14、wpFinished

可设参数为yes和no,默认为no。

如果设置为 “是”,安装程序将不会显示 “安装已完成 ”向导页面,而是在安装过程结束后立即关闭安装程序。如果使用 nowait 标志在[运行]部分执行一个程序,并且不希望在其他程序启动后,Setup Completed 窗口仍留在后台,这可能会很有用。

请注意,如果认为有必要重启计算机,或如果有文件分配给 InfoAfterFile [Setup] 部分指令,则 DisableFinishedPage 指令将被忽略。在这种情况下,仍将显示 “设置完成 ”向导页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

武当豆豆

为国家GDP快速增长做贡献

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值