Installshield 9 使用说明
一、向导部分
刚打开文档时的主UI
最近编辑文档
以上为intallshiel后的主UI当前还未打开任何的文档
新建文档
新建文档类型通
常选择第一个就
可以
向导
UI
1 2 3 4 5 6 7 8 9
程序的基本信息,包括公司名称,程序名称,版本号以及公司网址等。
以上信息将会在安装过程中的UI中显示。
2.Installation architecture:
组件的建立,类似于office安装过程中的程序模块选择。
例如。
在office安装过程中要全部安装,还是只安装word,excel等。
3.Application Files
文件的添加:在此处将所有的程序要使用到的文件添加到这里。
主要包括以下文件夹
3.1 script-defined folders:脚本定义文件夹:放到这里面的文件,其安装目录由脚本中FeatureSetTarget(MEDIA,"<para1>",para2);函数来重新定义。
para1在此定义的文件夹名。
Para2为目标文件夹名
3.2 application target folder:安装目标文件夹。
即实际安装过程中的目标文件夹。
一般在安装过程中由用户来选择,当然可以指定默认。
3.3 program files:program file文件夹,如果有特定的文件必须放在此文件夹里。
就放这个位置吧。
3.4 windows:同上。
这两个文件夹是系统自动搜索的。
如果是自己安装的操作系统,
比如将操作系统安装在其它盘符,一样可以搜到
4.Application redistributables
插件选择安装:如果你的程序需要以上的动态库连接,就打上
5Application shortcuts
快捷方式的建立点击New以后,会出现选择文件的对话框。
当然是已经在Application Files 中添加过的文件。
默认的可执行文件会自动添加。
如果不想用删掉即可
6Application registery
注册表添加:以上右击可以添加一个新的注册表项,其结构与windows自动的regedit十分类似。
7Installation interview
安装对话框的选择:对安装过程某些不是很重要的UI进行选择。
例如,许可证,公司个人资料等对话框。
8Installation localization
安装语言的选择
9Build installation
以上的条目如果全部完就,就可以进行编译了。
分为三种
1.Single executable
建立单个执行文件,生成的文件只有一个setup.exe.
2.Internet
网络下载更新式的安装包。
3.CD_ROM
建立可以用于光盘刻录的安装包,如果大于光盘容量左右。
会自动分两份打包文件通常情况下我们选3然后编译就可以生成一个简单的安装包了。
安装过程中对话框的选择
二、Installshield 脚本安装过程
1标准的脚本安装分以下过程.
点击installation designer就可以进入详细设计主UI,如下图
左边的主菜单
对应向导中的application info
组件的设计.大部分完整的规划都在这里做。
组件
跟组属于主从关系,也可以跟据语言独立。
所有的features如果包函文件必须以components包函的文件关系如下
不同的Components 可以设置不同的安装目录。
如果某个components不属于任何一个features,就必须跟据不同的语言来进行安装。
否则系统会提示出错
安装类型。
让用户选择哪种安装。
例如:其它软件安装程序常用的分三种:普通安装、用户自定义安装、最新安装
文件的添加,与向导中的application file对应
与向导中的插件对应
快捷方式与注册表。
注册表有一点需要说明一下,里面包括的条目与components类似,不同的是registry主从于components .也可以跟据不同的语言来进行安装。
脚本设计
安装支持。
程序安装过程中可能会使用到的临时文件就放到这里来。
对话框设计。
可以修改安装过程中dialog显示的文字与内容。
如果对安装UI没有其它特别要求的话,就不用管这里了
目径信息:一些系统特定的路径信息,如windows,program file等在这里以全局变量的方式存放。
可以由脚本来直接调用
更新
编译打包
File1
File2
File3
脚本安装过程
脚本流程主要包括以下2个部分
OnBegin ,当安装程序开始运行,首先执行的就是onbegin 在bookvoice 安装包中,onbegin 主要做了以下工作
1. g_nvReturnOS = checkos(),取得当前的操作系统版本类型。
将其放入全局变量中
2. 判断权限。
判断当前用户是否有安装权限。
如果没有,给出提示后退出.此步聚主要针对
win Nt 用户
3. 提取参数。
判断是否有外部参数传入。
(一般用来判断是安装还是卸载)
4. 设置安装目标
5. 将非包内的product.dat 放入目标文件夹
6. 设置屏幕背景
OnFirstUIBefore 初始化安装UI
此处用来初始化安装UI ,判断哪些dialog 用来显示,哪些不需要显示。
在bookvoice 中,此处还用来判断磁盘空间是否足够安装。
OnFirstUIAfter 复制文件完毕后操作:
一般在些处添加一些关于注册表动态处理的代码。
以及动态的注册一些动态连接库
OnMaintUIBefore 卸载程序初始化
在bookvoice 安装包中。
此处接收参数,关闭正在执行中的要被卸载的程序
OnMaintUIAfter 文件删除完毕后,清除所有的临时文件,及不能被卸载程序清除的信息由这里用代码清除。
Before move data
OnBegin
OnFirstUIBefore OnMaintUIBefore
After Move Data
OnFirstUIAfter OnMaintUIAfter
常用的几个脚本代码。
FeatureSetTarget()定义组件的安装目录。
文件操作
FindFile()查找文件是否存在,存在的话返回非0值
CopyFile()复制一个文件
GetProfString(path,key1,key2,para);从配置文件取出值。
一般为INI文件格式LaunchAppAndWait("regsvr32", szCMDLINE, W AIT);调用一个外部程序
注册表操作
RegDBSetDefaultRoot ();设置根键
例:RegDBSetDefaultRoot (HKEY_LOCAL_MACHINE); RegDBSetKeyValueEx();设置键的值
例:RegDBSetKeyValueEx(svKey,"Speech Language",REGDB_STRING,"German",-1); RegDBGSetKeyValueEx(); 读取键的值
RegDBCreateKeyEx创建一个键
RegDBDeleteKey()删除一个建值
Disable(LOGGING);
Enable(LOGGING);
打开及关闭日志
System ( SYS_BOOTMACHINE );重新启动系统
Delay(3);延时
SdShowMsg(“”,TRUE);
SdShowMsg(“”,FALSE);
显示关闭一条信息。