脚本范例分析:先来看看一段用INNO SETUP脚本向导创建的基本脚本的[Setup]段:
[Setup]
AppName=Premiere 6.5 汉化补丁-----------------(程序名称)
AppVerName=Premiere 6.5 汉化补丁------------(程序名称+版本)
AppPublisher=浩子工作室----------------------------(开发单位或作者)
AppPublisherURL=http://www.haozi.com------(开发单位或作者网址)
AppSupportURL=http://www.haozi.com-------(技术服务网址)
AppUpdatesURL=http://www.haozi.com-------(更新升级网址)
DefaultDirName={pf}/Adobe/Premiere 6.5-----(默认安装路径,{pf}就是“Program files”文件夹)
DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)
AllowNoIcons=yes--------------------------------------(创建快捷方式图标)
LicenseFile=D:/汉化/许可文件.txt------------------(显示许可协议)
InfoBeforeFile=D:/汉化/汉化说明.txt-------------(显示软件说明)
OutputDir=成品-----------------------------------------(安装程序存放位置)
OutputBaseFilename=Premiere 6.5 汉化补丁--(安装程序名称)
SetupIconFile=汉.ico----------------------------------(安装程序图标)
Compression=lzma-------------------------------------(压缩器:Lzma)
SolidCompression=yes--------------------------------(压缩方式:一次性压缩)
括号里内容是笔者添加的注释,我想大家应该能够理解。不过,作为汉化补丁,一般不需要创建开始菜单项目,不需要创建快捷方式图标,不需要卸载功能,而要求具有自动寻找原程序安装位置的功能,这样可使补丁安装更方便快捷, 因此作了如下修改:
(1)去掉以下项目:
DefaultGroupName=Premiere 6.5 汉化补丁----(默认添加在开始菜单中的项目名称)
AllowNoIcons=yes--------------------------------(创建快捷方式图标)
(2)增加以下项目:
DisableDirPage=yes-------------------------------(不用指定安装路径)
DisableProgramGroupPage=yes---------------(不要添加开始菜单项目)
DirExistsWarning=no-----------------------------(不提示文件夹已存在)
Uninstallable=no-----------------------------------(不要卸载程序)
(3)修改以下项目:原来的:
DefaultDirName={pf}/Adobe/Premiere 6.5----(默认安装路径,{pf}就是“Program files”文件夹)
关键问题是,这个路径是死的,一旦你在安装Premiere 6.5时更改了安装路径,比如有些人喜欢把大程序安装到D盘,这么一来,原路径就无效了,结果您还得手动指定正确的路径。这样的安装程序就显得太“笨”了。那么,如何让补丁程序自动获得原程序的实际安装路径呢?回答是:利用注册表。大多数应用程序安装后都会向注册表的特定位置写入安装和卸载信息,因此,只要让安装程序提取这些信息并转位自己的安装路径,就可实现自动定位功能。Inno Setup早就支持这个功能了,现在,我们把Premiere 6.5的注册表信息告诉它就行了,请看修改后的:DefaultDirName={reg:HKLM/SOFTWARE/Microsoft/Windows/CurrentVersion/Uninstall/Adobe Premiere 6.5,InstallLocation}-------------(从注册表读取Premiere 6.5的实际安装路径) 接着来看看基本脚本的[Files]段, 前面讲过,这一段是用来定义要打包到安装程序里的文件的, 因此, 要搞清楚这几个名词:Source:-------------文件的存放位置(来源)
DestDir:-------------文件要安装到什么地方(目标)
Flags:----------------对文件的附加处理参数(标示)下面来看看具体内容:
[Files]
Source: "D:/汉化/Preminfo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:/汉化/主程序/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "D:/汉化/插件/*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
生词注释:{app}----------------这是个常量, 代表程序安装路径,只要你在[Setup]段中的DefaultDirName项中进行了设定,其他地方就可以用它来代替。可能有人会问,常量是什么?通俗地说就是固定词汇,它们用简单的符号分别代表操作系统中的一些固定目录,使脚本简洁明了。具体内容可参看Inno Setup的帮助文本里的相关说明。Ignoreversion--------不理会文件的版本问题。Recursesubdirs-------把主文件夹和子文件夹一块儿打包(一锅端)。Createallsubdirs-----安装时创建相应的子文件夹。对[Files]段的修改:很多汉化补丁都是直接用汉化过的文件去替换原文件,很少在原程序目录里创建新的文件夹,因此可以去掉 Flags 标示中的 Createallsubdirs 项。
在安装的时候执行某个可执行文件...
[Files]
Source: "你要执行的文件名";
DestDir: "{app}"; Flags: ignoreversion deleteafterinstall .....
[Run]
Filename: "{app}/你要执行的文件名"; Description: "Setup"; Flags: skipifsilent shellexec
附:
Inno Setup的安装脚本包含的主要段落:
[Setup] 段:安装和卸载程序的全局设置,如作者信息、安装目录、压缩方式、是否卸载等。
[Types] 段:定义安装组件的类型,如“完全安装”、“最小安装”、“选择安装”。
[Components] 段:定义可供选择安装的所有组件
[Tasks] 段:定义安装期间所有由用户定制的任务。
[Dirs] 段:定义用户想额外创建的目录。
[Files] 段:定义要打包到安装程序里的文件。
[Icons] 段:定义要创建在开始菜单、桌面或任务栏等位置的快捷方式和图标。
[INI] 段:定义向用户系统中 .INI 文件中添加的新条目。
[InstallDelete] 段:定义要在安装之前删除的文件或文件夹。
[Languages] 段:定义安装程序中可使用的语言(适用于多国语言版)。
[Registry] 段:定义安装过程中要读取、新建或删除的注册表项。
[Run] 段:定义要在安装结束时运行的程序。
[UninstallDelete] 段:定义要在卸载时删除的其他文件或文件夹。
[UninstallRun] 段:定义要在开始卸载前运行的程序