InstallShield 打包实例 - 图文 下载本文

内容发布更新时间 : 2024/5/2 7:00:46星期一 下面是文章的全部内容请认真阅读。

该步骤是由InstallShield自动给出的,一般情况下我们不必做任何事。三个安装选项:典型安装、压缩安装和自定义安装是根据我们在安装类型(Setup Type)的面板中预先设置好的值来进行的。如果用户选择了自定义安装,系统就会弹出如下界面,见图。

这是由系统自动给出的,我们用不着写一行代码,这是不是很棒?

不知道你有没有注意到窗口的左面有一个说明框,它是用来提示用户目前所选择的组件是干什么的。在缺省的状态下它是空的,需要我们来添加。添加的方法是在组件

(Components)的面板中,每当我们点中一个组件在左边的列表中就会有一个描述栏(Description),它的内容就是上面提到的帮助信息,你只要将相对用户说的话写上去就行了。

十、 程序文件夹

这一步由InstallShield自动给出,一般不要做任何修改。 十一、 最后确认

我们一定还记得每当安装一个像Office等专业化软件时,在软件正式安装前系统都会给出一个列表框,其中列出了你所做的一切选择,包括软件的安装路径,需要安装的组件等,同时还包括了注册的用户名和单位等信息。在我们用InstallShield制作安装盘的时候也会有这一个列表框,但遗憾的是在缺省状况下InstallShield提供的这个列表框是空的,什么内容也没有,这需要我们给它加入。好在有函数ListAddString来帮我们的忙。

相关函数:ListAddString

该函数在字符串列表框的当前对象前后新增加一个字符串。调用成功返回0,否则返回小于0的任何数。

在脚本Setup.rul的事件OnFirstUIBefore中找到Dlg_SdStartCopy分支,如下: Dlg_SdStartCopy: szTitle = \szMsg = \

listStartCopy = ListCreate( STRINGLIST );

//The following is an example of how to add a string(svName) to a list(listStartCopy).

//eg. ListAddString(listStartCopy,svName,AFTER); nResult = SdStartCopy( szTitle, szMsg, listStartCopy ); ListDestroy(listStartCopy);

if (nResult = BACK) goto Dlg_SdSelectFolder; // setup default status SetStatusWindow(0, \Enable(STATUSEX); StatusUpdate(ON, 100); return 0; 在语句

nResult = SdStartCopy( szTitle, szMsg, listStartCopy ); 前加上如下代码

//*******加入安装过程中用户所选择的主要步骤 // 如果不手动加入的话将会什么也不列出

ListAddString(listStartCopy,\客户信息:\ListAddString(listStartCopy,\用户名:\ListAddString(listStartCopy,\用户单位:\ListAddString(listStartCopy,\

ListAddString(listStartCopy,\程序安装路径:\ListAddString(listStartCopy,\

ListAddString(listStartCopy,\程序文件夹:\ListAddString(listStartCopy,\switch (nSetupType)

case TYPICAL : ListAddString(listStartCopy,\安装类型:典型安装\case COMPACT: ListAddString(listStartCopy,\安装类型:压缩安装\

case CUSTOM: ListAddString(listStartCopy,\安装类型:自定义安装\endswitch; //end.

其中svName、svCompany、szDir等变量我们可以在事件OnFirstUIBefore开始的变量定义中找到。从变量的名称我们很清楚的知道该变量存放的是用户名,单位,安装目录等。 十二、 第一幅背景,第二幅背景——图片12,图片13

细心的朋友一定会注意到软件在安装过程中会出现两副不同的背景图片,图12和图13,这就是InstallShield的显示区界面,我们可以称它为布告板。这看上去是不是很像在播放幻灯片?呵呵,我们可以和微软的比一比了(说句笑话)。言归正传,还是来说说是如何实现的吧。

布告板,它只有在文件被传输时才被激活。也就是说,当你调用ComponentTransferData函数来解压并拷贝时布告板才被显示,该函数是有系统自动调用,用不着我们来操心。

但是,你不能为一个布告板指定显示时间,InstallShield会根据整个程序的安装时间(指文件拷贝时间)自动的为每一个文件平均分配,但至少是2秒。如果你的安装程序仅持续20秒,而你却放置了25副图片,很显然系统只会显示前10副图片。 当你需要显示布告板之前还必须确保以下两个条件:

1、 在你的脚本里,首先要确保在文件被传输前调用Enable(BACKGROUND) 和 Enable(FULLWINDOWMODE),我们可以加在事件OnMoving中。形式如下: function OnMoving() STRING szAppPath; begin

Enable(BACKGROUND); Enable(FULLWINDOWMODE); Enable(STATUSDLG);

PlaceWindow(STATUSDLG, 400, 10, LOWER_LEFT); szAppPath = TARGETDIR;

RegDBSetItem(REGDB_APPPATH, szAppPath);

RegDBSetItem(REGDB_APPPATH_DEFAULT, szAppPath ^ @PRODUCT_KEY); end; 相关函数:

Enable(BACKGROUND) :显示安装主背景窗口

Enable(FULLWINDOWMODE):设置主背景窗口为最大化。

2、 在设置文件(Setup Files)面板中,在合适的目标语言和平台下放置具有特殊后缀名的布告板文件。默认的命名是:“Bbrd”,然后再跟一个数字,最后再加上后缀“.bmp”或“.wmf”。例如,我们现在要加三副BMP图片,则这三副图片的名称分别应该是Bbrd1.bmp、Bbrd2.bmp、Bbrd3.bmp。

好了,运行一下,很不错。我们可以利用这项技术在安装过程中播放类似幻灯片效果,就像安装Windows一样。