Inno Setup 5.0.7
中
文
帮
助
一凡整理于 2005.2.7
QQ:51795745 Email :xsj_by@163.com
目 录
第一部分 简介 ............................................ 4
1、Inno Setup 是什么? .........................................................................................................4
2、文档约定 ............................................................................................................................4
第二部分 怎么使用 ....................................... 4
1、创建安装程序.....................................................................................................................4
2、脚本格式概述.....................................................................................................................5
3、段中参数 ............................................................................................................................5
4、常量 ....................................................................................................................................6
5、公共参数 ..........................................................................................................................10
6、组件和任务参数...............................................................................................................11
7、安装脚本段.......................................................................................................................12
[Setup] 段.......................................................................................................................12
[Types] 段 ......................................................................................................................15
[Components] 段............................................................................................................16
[Tasks] 段.......................................................................................................................17
[Dirs] 段.........................................................................................................................19
[Files] 段 ........................................................................................................................20
[Icons] 段 .......................................................................................................................26
[INI] 段 ..........................................................................................................................28
[InstallDelete] 段............................................................................................................29
[Languages] 段...............................................................................................................29
[Messages] 段 ................................................................................................................31
[CustomMessages] 段....................................................................................................31
[LangOptions] 段 ...........................................................................................................32
[Registry] 段 ..................................................................................................................33
[Run] & [UninstallRun] 段 ............................................................................................37
[UninstallDelete] 段.......................................................................................................39
8、Pascal 脚本 .......................................................................................................................40
2
介绍.................................................................................................................................40
创建 [Code] 段..............................................................................................................40
事件函数.........................................................................................................................41
脚本化常量.....................................................................................................................42
检查参数.........................................................................................................................43
BeforeInstall 和 AfterInstall 参数 ...............................................................................44
卸载代码.........................................................................................................................45
示例.................................................................................................................................46
支持的函数参考.............................................................................................................46
支持的类参考.................................................................................................................52
使用自定义向导页.........................................................................................................68
使用 DLL.......................................................................................................................68
使用 COM 自动操作对象............................................................................................69
第三部分 其它信息 .......................................70
1、常见问题解答...................................................................................................................70
2、向导页 ..............................................................................................................................70
3、安装顺序 ..........................................................................................................................71
4、其它注意事项...................................................................................................................72
命令行编译器执行.................................................................................................................72
5、安装命令行参数...............................................................................................................73
6、安装退出代码...................................................................................................................74
7、卸载命令行参数...............................................................................................................75
8、卸载退出代码...................................................................................................................75
9、不安全文件.......................................................................................................................76
10、感谢 ................................................................................................................................77
11、与我联系.........................................................................................................................77
3
第一部分 简介
1、Inno Setup 是什么?
Inno Setup 是一个免费的 Windows 安装程序制作软件。第一次发表是在 1997 年,Inno
Setup 今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。
关键功能:
★ 支持现在所有正在使用的 32 位 Windows 版本: Windows 95,98,2000,Server 2003,
XP,Me,NT 4.0 (不需要服务包)。
★ 支持创建单个 EXE 格式的安装程序,使你的程序可以很方便地在网络上发表。同时也
支持磁盘延伸。
★ 标准的 Windows 2000/XP 样式向导界面。
★ 定制安装类型,例如:完整安装,最小安装,自定义安装。
★ 完整的卸载功能。
★ 文件安装:
包括完全的“压缩”支持,bzip2 和 7-Zip LZMA 文件压缩。安装程序可以比较文件版
本信息,替换正在使用的文件,使用共享文件计数,注册 DLL/OCX 和类型库,以及安装
字体。
★ 可以在任意地方创快捷方式建,包括开始菜单和桌面。
★ 创建注册表和 .INI 项目。
★ 完整的 Pascal 脚本引擎。
★ 支持 multilingualLanguagessection 安装。
★ 支持密码和加密安装。
★ 后台安装和后台卸载。
★ 全部源代码公开 (Borland Delphi 2.0-5.0) 。
2、文档约定
Windows 98/NT 4+ 这是“Windows 98,2000,XP,NT 4.0,Me 以及更高版本”的简写。
Windows NT 只要是 Windows NT 就可以,它包括 Windows 2000 和 XP ( 就是 NT 5) ,除
非另外说明。
等宽文本 当你在帮助中看到等宽文本,它表示脚本在中输入的引用的文字。
第二部分 怎么使用
1、创建安装程序
安装程序用编译脚本的方式创建,脚本其实就是一个类似 .INI 文件格式的 ASCII 码文本
文件。 (它不象你想象的那么复杂!)
脚本用一个“.iss” (表示 Inno Setup Script) 的扩展名。脚本控制着安装程序的所有方面。
由它指定哪些文件将被安装到什么地方,在哪里创建快捷方式,且被命名为什么。
脚本文件一般可以用安装程序编译器程序内置的编辑器进行编辑。在你编写完脚本后,下一
4
个最终步骤就是选择安装程序编译器中的“编译”。创建完成后,就可以运行根据你脚本编
译的安装程序了。按默认,这个安装程序创建在包含脚本文件目录下的名为“输出”目录中。
如果你想看看它是怎样工作的,启动安装程序编译器,单击“文件 | 打开”,并选择位于 Inno
Setup 安装目录下的 Samples 子目录中的一个脚本文件。(你也可以将这些示例脚本作为你
自己编写脚本的模板。)
2、脚本格式概述
Inno Setup 准备了一些段。每个段控制一个不同方面的安装程序部分。每个段用包含在括号
[] 中的段名开始,每个段里面是一些相关的条目。
其 中 有 两 种 不 能 类 型 的 段 : 有 些 就 象 [Setup] 段 , 条 目 包 含 指 示 名 和 值 ( 格 式 为
Directive=Value),还有一些就象 [Files] 段,条目被参数分隔。
这里是一个例子:
[Setup]
AppName=My Program
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
注意,在脚本中指定多个相同名字的段是合法的。
你可以通过在行起始位置加个分号“;”在脚本中写入“注释” (编译时被编译时忽略)。例
如:
; 这是一条注释,放在这里只是要提醒我自己...
支持 A C-like #include 指示,从个别文件放入行到 #include 指示位置的脚本。语法是:
#include "filename.txt"
如果文件名中未提供完整的路径,编译将在包含 #include 指示的同一目录中查找。文件名
用“compiler:”作为前缀的场合中,在编译器目录中查找文件。
3、段中参数
所有脚本中的段,除 [Setup] 、[Messages]、[CustomMessages] 和 [LangOptions] 段,包含的
行中可有多个各自的参数。下列是 [Files] 段中的一个举例:
[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.HLP"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme
每个参数都由一个名字组成,然后跟随一个冒号,然后是一个值。除非另外说明,如果参数
未指定,将设定为一个默认值。一行中多个参数用分号隔开,并且可以以任何次序列出。
参数的值如果包含一个用户定义的字符串时,一般来说用双引号 (") 包含,例如象文件名。
引号使用不是必需的,但这样做可能会在值中的首位或末位被加入空格,以及分号和双引号。
在要引用的值中使用一个双引号字符,用两个连续的双引号字符,例如:
"This "" contains "" embedded "" quotes"
安装程序编译器会将它视作:
This " contains " embedded " quotes
如果你希望参数值是一个单个双引号字符,用四个双引号字符: """" 。外面的两个用于包含
引用的字符;内部两个写入单个的双引号字符。
5
4、常量
脚本中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。安装程序或
卸载程序会根据用户选择和系统配置将这些常量翻译为文字值。例如,{win} 在大部分系统
中会被翻译为“C:\WINDOWS”。
字符“{”视作为常量开始。如果你想将它作为实际字符使用,你必须使用两个连续的“{”
字符。(对于“}”则不需要。)
当在常量后面直接跟随一个反斜杠时,如果常量的值末端已经包含了一个反斜杠号,安装程
序 或 卸载程 序 将 自 动 删 除 该反 斜 杠 号 。 因 此 , 如 果 一 个 特 殊 常 量 值 是 “ C:\ ”,
{constantname}\file 将翻译为“C:\file”,而不是“C:\\file”。如果你想防止意外,将反斜框放
入 { } 字符中,例如,{app}{\}。
下面是支持的常量列表。
目录常量
{app}
用户在安装向导中的选择目标位置页中选定的应用程序目录。
例如: 如果你在项目中指定了 {app}\MYPROG.EXE,用户选择了“C:\MYPROG”作为应用
程序目录,安装程序将该文件安装到“C:\MYPROG\MYPROG.EXE”。
{win}
系统的 Windows 目录。
例 如 : 如 果 你 在 条 目 中 使 用 了 {win}\MYPROG.INI , 且 系 统 的 Windows 目 录 是
“C:\WINDOWS”安装程序或卸载程序将它传送到“C:\WINDOWS\MYPROG.INI”。
{sys}
系统的 Windows System 目录 (在 NT 平台上是 System32) 。
例如: 如果你在条目中使用了 {sys}\CTL3D32.DLL ,且系统的 Windows System 目录是
“ C:\WINDOWS\SYSTEM ” , 安装程 序
将 它 传 送 到
“C:\WINDOWS\SYSTEM\CTL3D32.DLL”。
{src}
安装程序文件所在目录。
例如: 你在条目中使用了 {src}\MYPROG.EXE ,且用户正在从“S:\”进行安装,安装程序
将它传送到“S:\MYPROG.EXE”。
{sd}
Windows 系统所在的驱动器。一般来说是“C:”。在 Windows NT 平台,这个目录常量等
同于 SystemDrive 环境变量。
{pf}
程序文件位置。系统的 Program Files 目录的路径,一般来说是“C:\Program Files”。
{cf}
公共文件目录。系统的 Common Files 目录路径,一般来说是“C:\Program Files\Common
Files”。
{tmp}
用于安装程序或卸载程序的临时目录。这不是用户的 TEMP 环境变量值。它是在安装程序
启动后在用户临时目录中创建的子目录 (象名为“C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。
目录中的所有文件和子目录在安装程序或卸载程序退出时删除。在安装时,这主要用于提取
在 [Run] 段运行、但安装后不再需要的文件。
{fonts}
或 卸载程 序
6
字体目录。通常是在 Windows 下面的名字“FONTS”的目录。
{dao}
DAO 目录,等同于 {cf}\Microsoft Shared\DAO 。
外壳文件夹常量
Inno Setup 支持其它目录常量设置,作为外壳文件夹常量引用。它们可以与其它目录常量相
同方法使用。
下面的“user”常量引用到当前登录的用户配置文件,“common”常量引用到所有用户配置
文件。
除非有另外的注释,外壳文件夹常量工作于 Inno Setup 支持的所有 Windows 版本,包括
Windows 95 和 NT 4.0 。
* = 如果登录的用户缺少管理员权限,或操作系统是 Windwos 95/98/Me ,“common”结构
映射到“user”结构。
{group}
开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定。在 Windows
NT/2000/XP,这个文件夹总是创建在所有用户配置文件下,除非非用户安装程序的用户没
有管理员权限,这种情况下它将创建在用户配置文件下。
{localappdata}
本地应用程序数据文件夹。
{sendto}
当前用户的 Send To 文件夹路径。(这里不是指公共 Send To 文件夹。)
{userappdata} 和 {commonappdata}
应用程序数据文件夹路径。
{userdesktop} 和 {commondesktop} *
桌面文件夹路径。
{userdocs} 和 {commondocs}
我的文档 (My Documents) 文件夹路径 (在 NT 4.0 ,私人文件夹)。
{userfavorites} 和 {commonfavorites} *
收藏夹文件夹路径。这些常量设置必须 至少“4.1, 4” MinVersion 设置。只在 Windows 2000
和更高版本支持 {commonfavorites} ;如果在先前的 Windows 版本中使用,它将翻译为等
同于 {userfavorites} 目录。
{userprograms} 和 {commonprograms} *
开始菜单中程序文件夹路径。
{userstartmenu} 和 {commonstartmenu} *
开始菜单顶层路径。
{userstartup} 和 {commonstartup} *
开始菜单启动文件夹路径。
{usertemplates} 和 {commontemplates} *
模板文件夹路径。仅在 Windows 2000 和更高版本支持 {commontemplates} ,如果使用的是
先前的 Windows 版本,它将被翻译为等同于 {usertemplates} 目录。
其它常量
{\}
反斜杠字符。查阅本页顶部的注释获取使用 {\} 和只使用一个 \ 字符之间的差异。
{%NAME|DefaultValue}
嵌入一个环境变量值。
7
★ NAME 用于指定要使用的环境变量的名字。
★ DefaultValue 确定如果指定的变量在用户系统中不存在时置入的字符串。
★ 如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过
“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开
它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用
“%25”。
★ NAME 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所
说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{%COMSPEC}
{%PROMPT|$P$G}
{cmd}
系 统 标 准 命 令 解 释 器 的 完 整 路 径 名 。 在 Windows NT/2000/XP , 是
Windows\System32\cmd.exe。在 Windows 95/98/Me ,是 Windows\COMMAND.COM 。注意
当展开这个常量时 COMSPEC 环境变量不使用。
{computername}
正在运行安装程序或卸载程序的电脑名 (等同于由 GetComputerName 函数返回的值)。
{drive:Path}
从指定的路径中提取并返回驱动器卷标和冒号 (例如“C:”)在 UNC 路径的场合中,它返
回服务器和共享名 (例如“\\SERVER\SHARE”)。
★ Path 指定路径。
★ 如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过
“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开
它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用
“%25”。
★ 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括
弧后半部只在使用于其它地方时需要替换。
示例:
{drive:{src}}
{drive:c:\path\file}
{drive:\\server\share\path\file}
{groupname}
用户在安装程序向导页的选择开始菜单文件夹中选定的文件夹名。它不同于 {group} ,只有
名字,不包含路径。
{hwnd}
(特殊用途) 转换为安装程序的背景窗口句柄。
{wizardhwnd}
(特殊用途) 转换为安装程序的向导窗口句柄。如果向导窗口句柄在翻译完成时不能用,这
个句柄设置为“0”。
{ini:Filename,Section,Key|DefaultValue}
从 .INI 文件插入一个值。
★ Filename 指定要读取的 .INI 文件的名字。
★ Section 指定读取的段名。
★ Key 指定读取的键名。
8