posts - 126,  comments - 73,  trackbacks - 0
CreateInstall Free
最早的时候用的是CreateInstall Free,绝对傻瓜式,适合初学者使用.但缺陷也很明显.Createinstall Free标志无法去除(花点钱注册倒是可以),删除时常常会报错.
Advanced Installer
Advanced Installer的功能是没的说的,一个字,牛,但对一些功能如对话框编辑之类的则要花点时间去琢磨琢磨.
想要搞专业点的兄弟就认准是他了.
inno
而后一个兄弟推荐使用inno.使用后发现inno的确也方便,简洁明了,虽然没用直接的ui选择界面,但用教本也不错.网上找了份inno的脚步说明(见下文),如果还不清除的自己去翻帮助文档吧.决定适合创建一般的应用程序安装包.






Inno Setup 安装脚本的初级应用(from:http://hi.baidu.com/momoca/blog/item/21c24316c3214e4920a4e924.html)


1、认识脚本的格式:(详细说明可查阅Inno Setup 的帮助文档)
Inno Setup的安装脚本包含以下主要段落:

[Setup] 段:安装和卸载程序的全局设置,如作者信息、安装目录、压缩方式、是否卸载等。
[Types] 段:定义安装组件的类型,如“完全安装”、“最小安装”、“选择安装”。
[Components] 段:定义可供选择安装的所有组件
[Tasks] 段:定义安装期间所有由用户定制的任务。
[Dirs] 段:定义用户想额外创建的目录。
[Files] 段:定义要打包到安装程序里的文件。
[Icons] 段:定义要创建在开始菜单、桌面或任务栏等位置的快捷方式和图标。
[INI] 段:定义向用户系统中 .INI 文件中添加的新条目。
[InstallDelete] 段:定义要在安装之前删除的文件或文件夹。
[Languages] 段:定义安装程序中可使用的语言(适用于多国语言版)。
[Registry] 段:定义安装过程中要读取、新建或删除的注册表项。
[Run] 段:定义要在安装结束时运行的程序。
[UninstallDelete] 段:定义要在卸载时删除的其他文件或文件夹。
[UninstallRun] 段:定义要在开始卸载前运行的程序。

以上每个段落里都有若干具体条目对安装程序的处理功能进行详细设置,当然,并不是每一项都用得上,还得根据实际需要选择使用。

2、脚本范例分析:
先来看看一段用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 项。
最后来看看修改后的脚本:
[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={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Premiere 6.5,InstallLocation}
DisableDirPage=yes
DisableProgramGroupPage=yes
DirExistsWarning=no
Uninstallable=no
LicenseFile=D:\汉化\许可文件.txt
InfoBeforeFile=D:\汉化\汉化说明.txt
OutputDir=成品
OutputBaseFilename=Premiere 6.5 汉化补丁
SetupIconFile=汉.ico
Compression=lzma
SolidCompression=yes

[Files]
Source: "D:\汉化\Preminfo.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\汉化\主程序\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
Source: "D:\汉化\插件\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs
posted on 2007-09-30 11:09 我风 阅读(2497) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2007年9月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(12)

随笔分类

随笔档案

文章档案

相册

收藏夹

C++

MyFavorite

搜索

  •  

积分与排名

  • 积分 - 319870
  • 排名 - 74

最新评论

阅读排行榜

评论排行榜