教大家Inno Setup使用进阶

发布时间:2024-03-21 21:41:41 作者:wwwyo365com 阅读量:3834

本篇教大家Inno Setup使用进阶 �牐�
�牐犚唬�介绍
�牐�
�牐營nno Setup是一个开源免费的安装程序制作工作。安装程序是以脚本的方式创建的,其扩展名为.iss(Inno Setup Script)。
�牐�
�牐牰�.常量
�牐�
�牐營nno Setup有一些自带的常量,它们被一对大括号({})括起来,当安装程序被启动的时候,这些常量将被转换成其真实的值,这依赖于用户的选择和系统配置,例如,{win} 这个常量在绝大多数的系统当中将被转换成“C:"WINDOWS”。
�牐�
�牐�1.目录常量
�牐�
�牐牐�1){app}
�牐�
�牐犛τ贸绦蚰柯迹�这是用户在安装向导的选择安装目录页里面所选择的。这是Inno Setup中最常用的一个变量。
�牐�
�牐牐�2){win}
�牐�
�牐犗低车腤indows目录,一般为“C:"WINDOWS”。例如:如果你使用了 {win}"MYPROG.INI ,而你的 Windows 目录是“C:"WINDOWS”,那么安装程序就会将它转换成“C:"WINDOWS"MYPROG.INI”。
�牐�
�牐牐�3){sys}
�牐�
�牐犗低车� Windows 系统(System)目录(在 Windows NT/2000 下是 System32)。 例如:如果你使用了 {sys}"CTL3D32.DLL,并且系统的 Windows 系统目录是“C:"WINDOWS"SYSTEM”,那么安装程序就会将它转换成“C:"WINDOWS"SYSTEM"CTL3D32.DLL”。
�牐�
�牐牐�4){src}
�牐�
�牐犞赶虬沧俺绦蛩�在的位置。
�牐�
�牐牐�5){sd}
�牐�
�牐犗低城�动器,它是指 Windows 被安装到的那个驱动器,典型的是“C:”,对于 Windows NT/2000,这个常量同系统的环境变量“SystemDrive”是等效的。
�牐�
�牐牐�6){pf}
�牐�
�牐犚彩荌nno Setup中比较常用的一个常量,这个路径是系统的Program Files目录,典型的是“C:"Program Files”。
�牐�
�牐牐�7){cf}
�牐�
�牐牴�共文件夹(Common Files),这个路径是系统的 Common Files 文件夹,典型的是“C:"Program Files"Common Files”。
�牐�
�牐牐�8){tmp}
�牐�
�牐犃偈蹦柯迹�这个目录并不是用户的 TEMP 环境变量指向的目录,而是安装程序在启动时在用户的临时目录下建立的一个子目录(它有一个类似于“ C:"WINDOWS"TEMP"IS-xxxxx.tmp”这样的名字),在安装程序退出时所有的文件和子目录将会被删除。对于在 [Run] 段里面要被执行且在安装以后又不需要的程序文件来说这个功能是非常有用的。
�牐�
�牐牐�9){fonts}
�牐�
�牐犠痔迥柯肌�
�牐�
�牐牐�10){dao}
�牐�
�牐燚AO 目录,当安装程序运行在 Windows 95/NT 4+ 上时,它被等效为 {cf}"Microsoft Shared"DAO,当运行于 Windows NT 3.51 时,它被等效为 { win}"MSAPPS"DAO。
�牐�
�牐�2.Shell文件夹常量
�牐�
�牐牨收呱形从玫剑�在此不作讲述。
�牐�
�牐�3.其它的常量
�牐�
�牐牐�1){"}
�牐�
�牐犚桓龇葱备茏址�,请参见本页前面提到的关于常量 {"} 和单字符 " 在使用上有何不同的说明。
�牐�
�牐牐�2){%NAME}
�牐�
�牐犇谇兑桓龌肪潮淞浚�这个 NAME 是要使用的环境变量的名字。如果在用户的系统当中指定的环境变量不存在,这个常量就会被一个空的字符串所替代。
�牐�
�牐牐�3){computername}
�牐�
�牐牥沧俺绦蛘�在运行的计算机的名称(就是“GetComputerName”函数的返回值)。
�牐�
�牐牐�4){groupame}
�牐�
�牐犛没г诎沧俺绦蛳虻嫉难≡癯绦蜃橐逞≡竦某绦蜃榈拿�称,这个是不同于 {group} 的,它不包括路径。
�牐�
�牐牐�5){hwnd}
�牐�
�牐�(专门用途)传送安装程序背景窗口的窗口句柄。
�牐�
�牐牐�6){reg:HKxx"SubkeyName,ValueName|DefaultValue}
�牐�
�牐燞Kxx 指定根键(root key),参见 [Registry] 段 文档所列出的根键。
�牐�
�牐燬ubkeyName 指定要读取的子键的名称。
�牐�
�牐燰alueName 指定要读取的值的名称,要读取一个键的默认值就让 ValueName 为空。
�牐�
�牐燚efaultValue 如果指定的注册表值不存在或者它不是一个字符串类型(REG_SZ 或者 REG_EXPAND_SZ),则嵌入这个值。
�牐�
�牐犎绻�你希望包括一个逗号,竖线(字符“|”)或大括号闭弧“}”在常量里面,你必须通过“%-编码” 形式用“%”后紧跟一个两位的16进制代码转译后替换原来的字符,一个逗号是“%2c”,一个竖线符是“%7c”,一个大括号闭弧是“%7d”。 DefaultValue 可以包括常量,然而,如上所诉内嵌的常量的大括号的闭弧
�牐�
�牐牐�“}”) 必须被改成“%7d”才可以。
�牐�
�牐牐�7){srcexe}
�牐�
�牐牥沧俺绦虻奈募�名全称(包括全程路径和文件名),例如“C:"SETUP.EXE”。
�牐�
�牐牐�8){username}
�牐�
�牐犜诵邪沧俺绦虻挠没У拿�称(函数 GetUserName 的返回值)。
�牐�
�牐牰�.脚本的段
�牐�
�牐營nno Setup的脚本的段分为几段,下面看一个Inno Setup自带的例子:Example1.iss,其内容如下:
�牐�
�牐�; -- Example1.iss --
�牐�
�牐�; Demonstrates copying 3 files and creating an icon.
�牐�
�牐�; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!
�牐�
�牐燵Setup]
�牐�
�牐燗ppName=My Program
�牐�
�牐燗ppVerName=My Program version 1.5
�牐�
�牐燚efaultDirName={pf}"My Program
�牐�
�牐燚efaultGroupName=My Program
�牐�
�牐燯ninstallDisplayIcon={app}"MyProg.exe
�牐�
�牐燙ompression=lzma
�牐�
�牐燬olidCompression=yes
�牐�
�牐燨utputDir=userdocs:Inno Setup Examples Output
�牐�
�牐燵Files]
�牐�
�牐燬ource: "MyProg.exe"; DestDir: "{app}"
�牐�
�牐燬ource: "MyProg.chm"; DestDir: "{app}"
�牐�
�牐燬ource: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
�牐�
�牐燵Icons]
�牐�
�牐燦ame: "{group}"My Program"; Filename: "{app}"MyProg.exe"
�牐�
�牐牬由厦婵梢钥闯觯琲ss文件是由一段一段的脚本组成的,例如,在上例中写了三段,分别为:[Setup]、[Files]和[Icons]。
�牐�
�牐犜诒拘〗谥兄皇谴致缘慕樯芤幌抡饧付蔚淖饔茫�至于具体每一段的使用,在本小节不予讲述。
�牐�
�牐�1. [Setup] 段
�牐�
�牐犝飧龆伟�括了安装和卸载程序所使用的全局设置,并且有些关键字在你建立的安装程序中是必须要用到的。
�牐�
�牐�2. [Dirs] 段
�牐�
�牐犝飧龆问强裳〉模�而且通常对于大多数简单的应用程序来书不是必需的。这个段是用来创建除用户选择的应用程序目录以外的其它的附加的目录,它是被自动创建的。这个段所创建的子目录是可以脱离主应用程序而共同使用的目录。当然在 [Files] 段里面的文件被复制到某个目录之前你并不一定要创建它,然而在卸载程序的时候在 [Dirs] 和 [UninstallDelete] 段里面没有指定的目录就不会被删除。
�牐�
�牐�3. [Files] 段
�牐�
�牐犝飧龆问强裳〉模�但对于大多数安装程序来说是必不可少的。在这里定义了安装程序需要复制到用户的系统当中的全部文件。
�牐�
�牐犜诎沧捌诩洌�卸载程序和数据被自动的复制到应用程序的目录当中去,因此你不必手工的将它们添加到 [Files] 段。
�牐�
�牐�4.[Icons] 段
�牐�
�牐犝飧龆问强裳〉模�但对于大多数安装程序来说是必不可少的。它定义了所有的安装程序要在用户系统中创建的程序管理器/开始菜单的图标。它也能被用来在其它的位置创建应用程序图标(快捷方式),比如就像桌面。
�牐�
�牐犘对赝急晔怯砂沧俺绦蚰诓看唇ǖ模�这样一来你就不需要在 [Icons] 段里面手工的添加它。默认情况下,安装程序运行在 Windows 95/NT 4+ 的时候是不创建卸载图标的 ――除了安装程序运行于 Windows NT 3.51 的时候。 要强制创建一个卸载图标,请使用 [Setup] 段里面的 AlwaysCreateUninstallIcon 关键字。
�牐�
�牐�5. [INI] 段
�牐�
�牐牬硕问强裳〉模�它定义了一些 .INI 文件项,在文件被复制以后安装程序在用户的系统中的设定。
�牐�
�牐�6.[InstallDelete] 段
�牐�
�牐犓�使用的是和 [UninstallDelete] 段相同的格式,不同的是它是在安装程序的第一步被处理的。
�牐�
�牐�7.[Messages] 段
�牐�
�牐燵Messages] 段是用于定义安装程序和卸载程序所显示的消息。通常你不需要在你的脚本文件里面创建 [Messages] 段,默认情况下所有的显示消息都由 Inno Setup 包含的文件 Default.isl 定义。 (或由 [Setup] 段的关键字 MessagesFile 指定的任何文件)。
�牐�
�牐�8.[Registry] 段
�牐�
�牐犝飧龆问强裳〉模�他定义了一些注册表项,用于在复制完文件之后创建在用户的系统中。
�牐�
�牐�9.[Run] & [UninstallRun] 段
�牐�
�牐燵Run] 段是可选的,指定任意数量的程序在成功安装程序以后及显示结束对话框之前被执行。同样 [UninstallRun] 段也是可选的,指定任意数量的程序在“卸载程序”的第一步时被执行。除非下面有其它说明,两个段共有相同的语法。
�牐犆扛龀绦虬凑漳愕慕疟颈嗯诺乃承虮恢葱校�当出路 [Run]/[UninstallRun] 的项时,安装程序将会等到当前的程序终止之后才处理下一个,当然除非使用了 nowait 标记。
�牐�
�牐�10.[UninstallDelete] 段
�牐�
�牐牳枚问强裳〉摹8枚问怯美炊ㄒ逡恍└郊拥某�了那些被安装的应用程序之外的要被卸载程序删除的文件或目录。使用该段来删除由你的应用程序创建的 .INI 文件是一个常用的办法。卸载程序在卸载过程的最后一步处理这些项。
�牐�
�牐犎�.注释和段内参数
�牐�
�牐營nno Setup中将以“;”开始的行作为注释行,例如在上小节中的Example1.iss中的前几行都是该例的注释行。
�牐�
�牐牻疟疚募�中的所有的段,除了[Setup],都是以行位单位,每行分为若干个参数。例如Example1.iss的[Files]段内容如下:
�牐�
�牐燵Files]
�牐�
�牐燬ource: "MyProg.exe"; DestDir: "{app}"
�牐�
�牐燬ource: "MyProg.chm"; DestDir: "{app}"
�牐�
�牐燬ource: "Readme.txt"; DestDir: "{app}"; Flags: isreadme
�牐�
�牐牬由厦娴慕疟敬�码可以看出,每个参数都有一个名称,例如Source、DestDir,后面紧跟一个冒号,然后是它的值。当一行有多个参数时,参数之间则用分号(;)隔开。
�牐�
�牐牪问�的值多数情况下是用引号扩起来("),但使用引号也是可选的。然而如果这个参数的值里面的前导符号或者后缀符号是空格的话就必须加上引号了。另外需要说明的是使用内嵌的分号和引号,要插入一个引号则使用两个连续的引号来代替。



***本网站图片,文字之类版权申明,因为网站可以由注册用户自行上传图片或文字,本网站无法鉴别所上传图片或文字的知识版权,如果侵犯,请及时通知我们,本网站将在第一时间及时删除。

我要评论

  热门标签

快软件
Catfish(鲶鱼) Blog V 4.7.3