INNOSETUP介绍(转)使用笔记1、InnoSetup是什么?InnoSetup是一个免费的Windows安装程序制作软件。第一次发表是在1997年,InnoSetup今天在功能设置和稳定性上的竞争力可能已经超过一些商业的安装程序制作软件。关键功能:★支持现在所有正在使用的32位Windows版本:Windows95,98,2000,Server2003,XP,Me,NT4.0(不需要服务包)。★支持创建单个EXE格式的安装程序,使你的程序可以很方便地在网络上发表。同时也支持磁盘延伸。★标准的Windows2000/XP样式向导界面。★定制安装类型,例如:完整安装,最小安装,自定义安装。★完整的卸载功能。★文件安装:包括完全的“压缩”支持,bzip2和7-ZipLZMA文件压缩。安装程序可以比较文件版本信息,替换正在使用的文件,使用共享文件计数,注册DLL/OCX和类型库,以及安装字体。★可以在任意地方创快捷方式建,包括开始菜单和桌面。★创建注册表和.INI项目。★完整的Pascal脚本引擎。★支持multilingualLanguagessection安装。★支持密码和加密安装。★后台安装和后台卸载。★全部源代码公开(BorlandDelphi2.0-5.0)。2、文档约定Windows98/NT4+这是“Windows98,2000,XP,NT4.0,Me以及更高版本”的简写。WindowsNT只要是WindowsNT就可以,它包括Windows2000和XP(就是NT5),除非另外说明。等宽文本当你在帮助中看到等宽文本,它表示脚本在中输入的引用的文字。第二部分怎么使用1、创建安装程序安装程序用编译脚本的方式创建,脚本其实就是一个类似.INI文件格式的ASCII码文本文件。(它不象你想象的那么复杂!)脚本用一个“.iss”(表示InnoSetupScript)的扩展名。脚本控制着安装程序的所有方面。由它指定哪些文件将被安装到什么地方,在哪里创建快捷方式,且被命名为什么。脚本文件一般可以用安装程序编译器程序内置的编辑器进行编辑。在你编写完脚本后,下一个最终步骤就是选择安装程序编译器中的“编译”。创建完成后,就可以运行根据你脚本编译的安装程序了。按默认,这个安装程序创建在包含脚本文件目录下的名为“输出”目录中。如果你想看看它是怎样工作的,启动安装程序编译器,单击“文件|打开”,并选择位于InnoSetup安装目录下的Samples子目录中的一个脚本文件。(你也可以将这些示例脚本作为你自己编写脚本的模板。)2、脚本格式概述InnoSetup准备了一些段。每个段控制一个不同方面的安装程序部分。每个段用包含在括号[]中的段名开始,每个段里面是一些相关的条目。其中有两种不能类型的段:有些就象[Setup]段,条目包含指示名和值(格式为Directive=Value),还有一些就象[Files]段,条目被参数分隔。这里是一个例子:[Setup]AppName=MyProgram[Files]Source:MYPROG.EXE;DestDir:{app}注意,在脚本中指定多个相同名字的段是合法的。你可以通过在行起始位置加个分号“;”在脚本中写入“注释”(编译时被编译时忽略)。例如:;这是一条注释,放在这里只是要提醒我自己...支持AC-like#include指示,从个别文件放入行到#include指示位置的脚本。语法是:#includefilename.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每个参数都由一个名字组成,然后跟随一个冒号,然后是一个值。除非另外说明,如果参数未指定,将设定为一个默认值。一行中多个参数用分号隔开,并且可以以任何次序列出。参数的值如果包含一个用户定义的字符串时,一般来说用双引号()包含,例如象文件名。引号使用不是必需的,但这样做可能会在值中的首位或末位被加入空格,以及分号和双引号。在要引用的值中使用一个双引号字符,用两个连续的双引号字符,例如:Thiscontainsembeddedquotes安装程序编译器会将它视作:Thiscontainsembeddedquotes如果你希望参数值是一个单个双引号字符,用四个双引号字符:。外面的两个用于包含引用的字符;内部两个写入单个的双引号字符。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}系统的WindowsSystem目录(在NT平台上是System32)。例如:如果你在条目中使用了{sys}\CTL3D32.DLL,且系统的WindowsSystem目录是“C:\WINDOWS\SYSTEM”,安装程序或卸载程序将它传送到“C:\WINDOWS\SYSTEM\CTL3D32.DLL”。{src}安装程序文件所在目录。例如:你在条目中使用了{src}\MYPROG.EXE,且用户正在从“S:\”进行安装,安装程序将它传送到“S:\MYPROG.EXE”。{sd}Windows系统所在的驱动器。一般来说是“C:”。在WindowsNT平台,这个目录常量等同于SystemDrive环境变量。{pf}程序文件位置。系统的ProgramFiles目录的路径,一般来说是“C:\ProgramFiles”。{cf}公共文件目录。系统的CommonFiles目录路径,一般来说是“C:\ProgramFiles\CommonFiles”。{tmp}用于安装程序或卸载程序的临时目录。这不是用户的TEMP环境变量值。它是在安装程序启动后在用户临时目录中创建的子目录(象名为“C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。目录中的所有文件和子目录在安装程序或卸载程序退出时删除。在安装时,这主要用于提取在[Run]段运行、但安装后不再需要的文件。{fonts}字体目录。通常是在Windows下面的名字“FONTS”的目录。{dao}DAO目录,等同于{cf}\MicrosoftShared\DAO。外壳文件夹常量InnoSetup支持其它目录常量设置,作为外壳文件夹常量引用。它们可以与其它目录常量相同方法使用。下面的“user”常量引用到当前登录的用户配置文件,“common”常量引用到所有用户配置文件。除非有另外的注释,外壳文件夹常量工作于InnoSetup支持的所有Windows版本,包括Windows95和NT4.0。*=如果登录的用户缺少管理员权限,或操作系统是Windwos95/98/Me,“common”结构映射到“user”结构。{group}开始菜单文件夹路径,由用户在安装程序的选择开始菜单文件夹向导页中选定。在WindowsNT/2000/XP,这个文件夹总是创建在所有用户配置文件下,除非非用户安装程序的用户没有管理员权限,这种情况下它将创建在用户配置文件下。{localappdata}本地应用程序数据文件夹。{sendto}当前用户的SendTo文件夹路径。(这里不是指公共SendTo文件夹。){userappdata}和{commonappdata}应用程序数据文件夹路径。{userdesktop}和{commondesktop}*桌面文件夹路径。{userdocs}和{commondocs}我的文档(MyDocuments)文件夹路径(在NT4.0,私人文件夹)。{userfavorites}和{commonfavorites}*收藏夹文件夹路径。这些常量设置必须至少“4.1,4”MinVersion设置。只在Windows2000和更高版本支持{commonfavorites};如果在先前的Windows版本中使用,它将翻译为等同于{userfavorites}目录。{userprograms}和{commonprograms}*开始菜单中程序文件夹路径。{userstartmenu}和{commonstartmenu}*开始菜单顶层路径。{userstartup}和{commonstartup}*开始菜单启动文件夹路径。{usertemplates}和{commontemplates}*模板文件夹路径。仅在Windows2000和更高版本支持{commontemplates},如果使用的是先前的Windows版本,它将被翻译为等同于{usertemplates}目录。其它常量{\}反斜杠字符。查阅本页顶部的注释获取使用{\}和只使用一个\字符之间的差异。{%NAME|DefaultValue}嵌入一个环境变量值。★NAME用于指定要使用的环境变量的名字。★DefaultValue确定如果指定的变量在用户系统中不存在时置入的字符串。★如果你想在常量内部包含一个逗号、竖条(“|”),或括弧后半部(“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。★NAME和DefaultValue可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。示例:{%COMSPEC}{%PROMPT|$P$G}{cmd}系统标准命令解释器的完整路径名。在WindowsNT/2000/XP,是Windows\System32\cmd.exe。在Windows95/98/Me,是Windows\COMMAND.COM。注意当展开这个常量时COMSPEC环境变量不使用。{computername}正在运行安装程序或卸载程序的电脑名(等同于由GetComputerName函数返回的值)。{drive:Path}从指定的路径中提取并返回驱动器卷标和冒号(例如“C:”)在UNC路径的场合中,它返回服务器和共享名(例如“\\SERVER\SHARE”)。★Path指定路径。★如果你想在常量内部包含一个逗号、竖条(“|”),或括弧后半部(“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从