InstallShield打包工具学习文档V10.docx
- 文档编号:24630668
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:53
- 大小:652.31KB
InstallShield打包工具学习文档V10.docx
《InstallShield打包工具学习文档V10.docx》由会员分享,可在线阅读,更多相关《InstallShield打包工具学习文档V10.docx(53页珍藏版)》请在冰豆网上搜索。
InstallShield打包工具学习文档V10
InstallShield打包工具学习文档V1.0
目录
前言3
第一章集成开发环境基础4
1.1集成开发环境概述4
1.2菜单栏和工具6
1.2.1菜单栏6
1.3项目工作区窗口7
1.3.1Scripts页面7
1.4集成开发环境的初步实践8
第2章InstallScript脚本语言基础9
2.2数据类型11
2.3逻辑运算和判断选取控制12
2.4循环语句13
2.5函数14
2.6字符串操作15
2.6.1字符和字符串15
2.7结构体类型和指针16
2.8链表17
2.9编译预处理19
2.10文件及文件夹操作20
2.11常用对话框操作(上)22
第3章基本安装程序的建立24
3.2理解程序框架26
3.3添加和修改28
3.3添加和修改(下)30
3.4选择媒介发布32
第4章安装界面的设计33
4.2应用多媒体34
4.3界面的效果设计35
4.4对话框界面的定制36
4.4对话框界面的定制(下)38
4.4.3处理对话框和控件的消息38
4.5界面的汉化39
第5章深入安装程序制作41
5.2安装类型和组件控制43
5.3制作数据库应用程序的安装45
5.4多个安装程序46
5.5安装程序的调试47
附录A使用InstallShield系统变量的缺省值48
附录B使用InstallShieldforVisualC++6.049
附录C最新InstallShield产品简介51
前言
在DOS时代,人们不会忘记,想要制作一个应用程序的安装包往往是通过批处理文件来实现的,这种风格的安装程序常常令人们乐此不疲。
直到UCDOS图形安装界面的出现,才让人感到一些新意,并为之一振。
然而不久,具有易学易用的图形用户界面、多任务功能的Windows系统出现了,并大有取代DOS的趋势。
直到Windows95的问世,才使得DOS真正变为过去,成为PC机上最流行的操作环境,并且随着Windows98与InternetExplorer集成的新特性的引入,越来越多的程序员已开始致力于Windows应用程序的研究与开发。
同样,安装程序的运行环境也由原来的DOS变成了现在的Windows系统。
安装一个软件或应用程序已不再仅仅是将相关的文件复制到硬盘中,而是必须允许用户按自己的愿望选择安装类型和安装路径,并且在不需要的时候,还要能够将安装的相关内容全部删除掉。
这种Windows下的安装程序给人们留下了很深的印象,人们在惊叹Office2000强大的安装功能和悦目的安装界面之后,已无法维持对DOS安装程序的留恋。
InstallShield恰恰是在这种操作系统不断发展的潮流中应运而生的,从InstallShield3.0到5.5,从普通的安装程序制作到最新的Windows安装界面,InstallShield公司已开发出基本各种操作平台和软件开发环境的InstallShield产品。
InstallShieldforMicrosoftVisualC++6(简称InstallShieldVC版)和InstallShieldExpressCustomEditionforC++Builder或Delphi(简称InstallShieldExpressC++Builder或Delphi版)就是其中用户较为熟悉的产品。
由于InstallShield功能强大、灵活性好、完全可扩展以及具有强有力的网络支持,在各种安装程序开发工具中脱颖而出,成为目前最为流行的制作安装程序的工具软件。
而且,它所内建的脚本语言InstallScript使得用户可以像其他高级语言那样灵活地构造出自己的安装脚本程序来。
正是因为这一点,InstallShield已经成为目前制作安装程序的工业标准。
用户所熟悉的VisualStudio98、BorlandC++Builder(Delphi)以及目前绝大多数的软件安装程序均是用InstallShield来制作的。
第一章集成开发环境基础
1.1集成开发环境概述
在Windows95/98/NT操作系统中正确安装了InstallShield5.5专业版后,就可以单击任务栏的"开始",选择"程序"中的"InstallShield5.5ProfessionalEdition",再选择该程序文件夹下的"InstallShield5.5ProfessionalEdition"就能运行InstallShield。
第一次运行时,弹出如图1.1所示的界面。
图1.1
但当利用ProjectWizard(项目向导)或其他工具创建一个安装项目后,就会出现InstallShield5.5的完整界面,如图1.2所示。
图1.2
它是由标题栏、菜单栏、工具栏、项目工作区窗口、文档窗口、输出窗口以及状态栏等组成的。
标题栏是用来显示出当前窗口中的文件名,而且一般还有[最小化]、[最大化]或[还原]以及[关闭]按钮,单击[关闭]按钮将退出集成开发环境。
菜单栏包含了集成开发环境中几乎所有的命令,它为用户提供了文档操作、安装脚本程序的编译、调试、窗口操作等一系列的功能。
由于工具栏比菜单操作更为便捷,故常常将一些常用菜单命令也同时安排在工具栏上。
项目工作区窗口包含用户安装项目的一些信息,包括文件组、组件、脚本文件、资源等。
在项目工作区窗口中的目录项或图标处单击鼠标右键,有时还会弹出相应的快捷菜单,它包含当前状态下的一些常用操作。
文档窗口位于集成开发环境中的右边,脚本文件、资源文件以及安装程序所需要的各种资源等都可以通过该窗口显示出来。
输出窗口出现在集成开发环境窗口的底部,它包含了Build和Compile两个页面,分别用来显示建立和编译过程中的相关信息。
状态栏位于集成开发环境的最底部,它用来显示当前操作状态、说明、文本光标所在的行列号等信息。
1.2菜单栏和工具
1.2.1菜单栏
在集成开发环境界面中,用户可以看到在它的上方排列着一系列的菜单,而每一个菜单下都有各自的菜单命令。
在进一步与集成开发环境打交道之前,先了解各项菜单命令的基本功能是很有必要的,因为大部分的操作都是通过菜单来完成的。
InstallShield5.5的菜单栏中包含了File(文件)、Edit(编辑)、View(查看)、Insert(插入)、Project(项目)、Build(编译)、Tools(工具)、Windows(窗口)以及Help(帮助)等菜单。
其中File、Edit、View、Windows和Help均与一般Windows应用程序的菜单用法相同。
这里仅对Insert、Project、Build和Tools菜单作简单说明。
·Insert菜单
Insert菜单中的命令主要用于项目及资源的创建和添加,它有三个菜单项:
FileintoScriptFiles...、FileintoSetupFiles...和LinksintoFileGroups...,分别表示将某个文件插入脚本文件和安装文件中以及链接到文件组中。
一般情况,这三个菜单项是被禁用的。
当切换到项目工作区窗口的"Scripts"页面并选定其中的脚本文件目录项时,菜单项"FileintoScriptsFiles"被激活;当切换到项目工作区窗口的"SetupFiles"页面并选定其中的目录项时,菜单项"FilesintoSetupFiles"被激活;而当切换到项目工作区窗口的"FileGroups"页面并选中其中的"Links"目录项时,菜单项"LinksintoFileGroups"被激活。
·Project菜单
Project菜单中的命令主要用于项目的创建和相关内容的设置,它有三个菜单项:
ProjectWizard…、VisualBasicProjectWizard…和Setting…,分别用来创建一般安装项目、VB应用程序安装项目以及项目相关内容的设置。
·Build菜单
Build菜单中的命令主要用来进行安装程序的编译、连接、调试、运行等操作,它包括这样的菜单命令:
Compile(编译)、RunSetup(运行)、DebugSetup(调试)、Media(媒介)、Settings...(设置调试和编译时的参数)。
1.3项目工作区窗口
1.3.1Scripts页面
项目工作区窗口的Scripts页面用来管理安装程序的脚本文件,在该页面中各项脚本文件均以树状列表的型式显示出来的。
每个目录项前都有一个图标,且顶层目录项前还有一个套在方框中的符号"+"。
双击顶层目录项或单击最前面的"+",则直接打开并显示该目录项的所有子项,此时顶层目录项前的"+"变成"-"号;再双击顶层目录项或单击最前面的"-",则该项目的所有子项被收缩,只显示顶层目录项内容,此时顶层项目前的"-"又变成了原来的"+"号。
展开顶层目录项的所有子项,双击以.rul为扩展名的脚本文件项,则在开发环境的右边的文档窗口中显示出该脚本文件的内容。
为了增强安装程序代码的可读性,脚本文件的源代码内容往往是以不同颜色来显示的,各种颜色所代表的含义如下所示:
白底黑字一般文本
黑底白字被选定的文本
青色底黑色字文本的行标记
白底红字InstallShield的函数
白底蓝字InstallScript脚本语言的关键字
白色底品红色字常数
白色底紫红色字用""符号括起来的文本内容
白底绿字注释
1.4集成开发环境的初步实践
前面介绍了关于集成开发环境的一些基本情况,这里以空类型的安装项目为例,进一步说明集成开发环境的使用过程。
1.4.1创建一个空的安装项目
在InstallShield5.5中,利用ProjectWizard(安装项目向导)和安装项目模板可以创建Windows应用程序、数据库应用程序以及其他类型程序的安装项目。
这里,我们首先对空类型的安装项目作简单说明,其他安装项目类型将在以后的章节中陆续介绍。
一个空类型的安装项目包含了一般安装项目的基本框架,只是安装脚本文件中没有相应的安装程序代码,因而不执行任何操作。
创建一个空类型的安装项目的最大好处是可以帮助用户熟悉和掌握InstallScript语言的用法,并由此编制出简繁随意的安装程序来。
在InstallShield5.5中,想要创建一个空类型的安装项目,只需选择"File"菜单->"New"菜单命令,在"New"对话框中选定"BlankSetup",并单击[确定]按钮即可,如图1.5所示。
图1.5
此时,InstallShield5.5自动为该安装项目命名为"BlankSetup",并定位到项目工作区窗口的Scripts页面,而且还在集成开发环境的右边窗口中打开相应的脚本文件。
第2章InstallScript脚本语言基础
InstallScript是专门用来编写InstallShield安装程序的脚本语言。
由于InstallScript和C语言极为相似,因而使得VisualC++用户编写安装脚本程序颇为得心应手。
即使对于没有任何语言基础的用户来说,编写InstallScript程序也不会觉得无从下手,因为InstallScript程序结构是非常简单的。
并且,
InstallScript为用户提供了超过250个的内部函数,从而使得用户不需要太多的代码就能编写出具有专业水准的安装程序来。
2.1InstallScript程序结构
同其他程序设计语言一样,InstallScript脚本语言也有自己的程序结构。
2.1.1几个InstallScript程序
下面先来看看几个比较简单的InstallScript程序。
[例Ex_Hello]一个简单的InstallScript程序,用来弹出"问候"对话框。
STRINGszTitle;
program
szTitle="问候";
SetDialogTitle(DLG_MSG_INFORMATION,szTitle);
MessageBox("您好!
",INFORMATION);
endprogram
程序中,program...endprogram构成主程序体,每一个InstallScript程序中都必须包含一个且只有一个这样的主程序体。
在主程序体外,只能是变量定义、用户函数定义以及预处理指令等,而程序体内可以包括若干条语句,每一条语句都由分号";"结束。
本例中,SetDialogTitle和MessageBox都是InstallScript的内部函数,它们分别用来设置对话框的标题和显示指定的信息文本,INFORMATION是一个系统预定义的常量,szTitle变量是在程序体外定义的字符串变量。
[例Ex_Func]自已定义一个函数,用来显示消息对话框。
prototypeMyMessage(STRING,STRING);//自定义函数的声明
program
szTitle="问候";
MyMessage(szTitle,"您好!
");
endprogram
functionMyMessage(szTitle,szMessage)/*MyMessage函数体*/
begin
SetDialogTitle(DLG_MSG_INFORMATION,szTitle);
MessageBox(szMessage,INFORMATION);
end;
2.2数据类型
程序可以看成是由数据结构和算法组成的。
数据结构体现对数据的描述,而算法反映了对数据的操作及处理。
任何一门计算机语言都必须包括数据类型、运算符与表达式等内容来定义和实现程序中的数据结构和算法。
2.2.1基本数据类型
InstallScript的数据类型比其他任何高级语言的数据类型要简单易用,它只有基本类型和结构类型两类。
这里先讨论InstallScript的基本数据类型。
基本数据类型是InstallScript的内部数据类型,包括CHAR(字符型)、NUMBER(数值整型)等,表2.2列出各种基本数据的类型。
需要说明的是:
在InstallScript的数据类型中,除了BOOL、HWND及LIST类型不能使用小写外,其余的数据类型还有其小写形式,例如int、number、string等,用来提供一种方便。
但是,InstallScript没有无符号数值类型以及浮点数值类型。
2.3逻辑运算和判断选取控制
InstallScript往往利用逻辑运算后的结果对程序进行判断、选取等控制。
2.3.1关系运算符
关系运算是逻辑运算中比较简单的一种。
所谓"关系运算"实际上是比较两个操作数是否符合给定的条件。
若符合条件,则关系表达式的值为"真",否则为"假"。
在InstallScript编译系统中,往往将"真"表示为TRUE,将"假"表示为FALSE。
而任何不为0的数被认为是"真",0被认为是"假"。
由于关系运算需要两个操作数,所以关系运算符都是双目运算符。
InstallScript提供了下列6种关系运算符:
<(小于),<=(小于等于),>(大于),>=(大于等于),=(相等于),!
=(不等于)
其中,前4种的优先级相同且高于后面的两种,但关系运算符的优先级低于算术运算符。
需要说明的是:
(1)InstallScript赋值运算符和等于的关系运算符使用同一个"="符号。
(2)InstallScript不支持赋值和关系运算同在一个表达式中的情形。
例如,下面的语句是不允许的:
if((listID=ListCreate(NUMBERLIST))=LIST_NULL)
then
...
endif;
2.3.2逻辑运算符
逻辑运算符是用于将多个关系表达式或逻辑量("真"或"假")组成一个逻辑表达式。
InstallScript提供了下列3种逻辑运算符:
!
逻辑非(单目)
&&逻辑与(双目)
||逻辑或(双目)
"逻辑非"是指将"真"变"假","假"变"真"。
"逻辑与"是指当两个操作数都是"真"时,结果才为"真",否则为"假"。
"逻辑或"是指当两个操作数中有一个是"真"时,结果就为"真",而只有当它们都为"假"时,结果才为"假"。
"逻辑非"、"逻辑与"和"逻辑或"的优先级依次从高到低,且"逻辑非"的优先级还比关系运算符高,而"逻辑与"和"逻辑或"的优先级却比关系运算符低。
2.4循环语句
在InstallScript语言中,可以用以下几种形式的语句来实现循环:
(1)用goto语句和if语句构成循环
(2)用while..endwhile语句
(3)用repeat..until语句
(4)用for..endfor语句
2.4.1用goto语句和if语句构成循环
goto语句为无条件转向语句,它的一般形式为:
goto语句标号;
语句标号用标识符表示,它的命名规则与变量名相同,不能用整数来作为标号。
结构化程序设计方法主张限制使用goto语句,因为滥用goto语句将使程序流程无规律、可读性差。
但也不是绝对禁止使用goto语句。
一般来说,可以有两种用途:
一是从循环体中跳到循环体外,另一是与if语句一起构成循环结构。
例如:
Name:
AskText("Companyname:
","",szSrc);
if(szSrc="")then
MessageBox("Pleaseenterthecompanyname.",SEVERE);
gotoName;
endif;
2.4.2while..endwhile语句
while..endwhile循环语句具有下列形式:
while(表达式)
语句
endwhile;
2.5函数
在结构化程序设计中,通常需要若干个模块实现较复杂的功能,而每一个模块自成结构,用来解决一些子问题。
这种模块化的结构设计思想能很好地发挥"团队"力量,在代码修改和重用上,极为方便和快捷。
函数正是结构化设计程序的基本结构。
2.5.1概述
InstallScript允许用户在安装程序中使用下列三种类型的函数:
(1)InstallShield内部函数
InstallShield中定义了250多个的内部函数,包括字符串处理、文件、路径以及文件夹等操作的函数。
除了Sd对话框函数外,其他大多数内部函数可以直接在程序中进行调用。
(2)用户自定义的函数
自定义的函数是用户自己构造的函数,它必须在主程序体program关键字前声明,而在endprogram后进行定义,才能在程序中进行调用。
(3)DLL函数
Windows动态链接库(DynamicLinkingLibrary,简称DLL)提供了一些特定结构的函数,能被应用程序在运行过程中装入和连接,且多个程序可以共享同一个动态链接库,从而可以大大节省内存和磁盘空间。
从编程角度来说,动态链接库可以提高程序模块的灵活性,因为它本身是可以单独设计、编译和调试的。
同大多数编程语言一样,在InstallShield5.5中也可方便调用DLL函数。
2.5.2自定义函数的声明和定义
在InstallScript脚本语言中,使用用户自定义函数必须先进行函数的声明,然后进行函数的定义。
(1)自定义函数的声明
自定义的函数必须在主程序体program关键字前按下列形式进行声明:
prototype函数名(形参类型1,形参类型2,...);
其中,prototype是InstallScript的关键字,它通知编译器该行语句是用来声明一个自定义函数。
"形参类型"是指InstallScript的基本数据类型,如INT、STRING或SHORT等。
例如下面的函数声明都是合法的:
prototypeFunctionName(INT,STRING,SHORT);//声明有三个形参的函数
prototypeCopyBitmapExample();//声明一个没有形参的函数
prototypeFileTransfer(LONG,LONG,LONG,STRING,STRING);//声明有五个形参的函数
函数名是一个有效的InstallScript标识符(注意命名规则),函数名后面必须跟一对圆括号"()",以区别于变量名及其他用户定义的标识名。
函数的形式参数写在括号内,参数表中参数个数可以是0,表示没有参数,但圆括号不能省略,也可以是一个或多个参数,但多个参数间要用逗号分隔。
2.6字符串操作
同C语言一样,InstallScript也有许多字符串操作的运算符及其内部函数。
2.6.1字符和字符串
虽然InstallScript支持数组类型,但它只支持一维数组。
且这里的字符数组和字符串的概念很不一样。
例如:
CHARstr[10];
program
str="ABCDE";//产生编译错误
endprogram
但是,STRING类型的字符串概念与C语言一样。
它是一个以'\0'为终止符的一维字符数组,使用数组下标可以获得相应的字符。
例如:
[例Ex_String]使用字符串。
prototypeBlankLeadingZeros(BYREFSTRING);
STRINGszString;
program
szString="00001234";
BlankLeadingZeros(szString);
MessageBox(szString,INFORMATION);
endprogram
functionBlankLeadingZeros(szString)//将字符串的前导字符'0'变为空格。
INTiVal,iLength;
begin
iVal=0;//字符数组的下标从0开始
iLength=StrLength(szString);
while(szString[iVal]="0")&&(iVal<=iLength)
szString[iVal]="";
iVal=iVal+1;
endwhile;
end;
结果是将"00001234"字符串变为"1234"。
2.7结构体类型和指针
至此,我们所使用的数据类型都是基本的类型,如INT、NUMBER、STRING等。
但InstallScript还允许用户按一定的规则进行数据结构体类型的构造。
同时提供指针的概念,方便用户对变量的地址进行操作。
2.7.1用typed
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- InstallShield 打包 工具 学习 文档 V10
![提示](https://static.bdocx.com/images/bang_tan.gif)