前言
当我们在经历了长久的宿夜匪懈之後,完成了一个令自己自豪的程式。此时我们就必须为作品撰写安装程式,在传统的Windows程式设计领域中,撰写安装程式也是一门学问。在早期Windows的进阶名家Jeffery Richter所撰写的一本经典书籍:Windows 3.1: A Developer's Guide一书中,即有一章是在说明如何撰写一个安装程式。
然而近几年来,软体元件的使用已成惯例,愈来愈多的有用的软体元件或工具程式相继被开发出来,而安装程式 (Install PRogram) 即为其中颇具代表性的一员。翻开程式员乐园杂志 (Programmer's Paradise ),即可看到许多这类的产品。其中Install Shield即为其中的佼佼者。
在昔日,软体公司或个人工作室除非自行撰写安装程式,否则就必须花钱购买一套安装工具程式。然而,如今由於编译器厂商竞争激烈,所以多半都会附上一套阳春版的安装工具程式,如C++Builder、Visual C++ 等都随产品附上一套安装工具程式。
而它们的共同选择就是Install Shield,由此可见Install Shield在安装程式的领域中实已奠定其稳定的基石,为各大厂商所使用。现在我就为你介绍Install Shield的使用方式。
Install Shield的C++ Builder版本
Install Shield随厂商附送的版本会针对各厂商的非凡需求做额外的处理,例如C++Builder附送的Install Shield版本会针对Borland Database Engine 、SQL Link及C++Builder的RTL (Runtime-Library)增加额外的选项,见图一。
图一 Install Shield C++Builder Editition的额外选项。
而Visual C++ 版本也会针对ODBC、DAO等做额外的处理。见图二。
在此我们讨论的对象以C++Builder的版本为主。不过基本上它们都是共通的,因此若是你学会了这一套,你也同时把握了其他版本的主要部份,只要对其差异部份稍加注重即可。
开启一个新的Project
在此我们以本书中的email程式 - bcbmail来说明安装程式的设定。首先我们必须开启一个新的安装程式专案。如图叁。
图叁 开启一个新的专案档。
在设定完专案名称及目录路径後,我们就可以按【Create】来建立一个新的专案档了。附带说明一点,该专案档是以IWZ为名,以此范例而言,你就得到一个名为bcbmail.iwz的专案档。
Install Shield完全攻略
在建立一个新的专案档後,你就可以开始逐项设定安装程式所需之资讯了。图四为我们所需设定的项目,其中打勾的部份表示已经设定过的项目,未打勾的项目则为尚未设定的项目。
你并不需要一一设定所有的项目,只有在需要时在设定即可。举例来说,若你不需修改Registry,那麽你就不必去设定 【Make Registry Changes】项目。
以下我会以bcbmail为例子逐项说明之。以bcbmail为例是因为它不仅是一个完整的范例,同时也使用到了Borland Database Engine,因此你可以由此学习到一个使用BDE的应用程式,在利用Install Shield来制作其安装程式时,所需注重的事项。
图四 Install Shield的各个细部选项。
设定程式外观及目录
首先在【App Info】分页设定程式名称、可执行档名称、版本号码、内定程式安装目录等讯息。见图五。
图五 设定程式目录及相关讯息。
接着设定是否使用Bitmap或是文字来做为背景。在此我使用文字做为背景文字,你也可以使用图案为背景,不过在C++Builder附送的版本只能支援16色的图案,因此你不可以使用超过16色以上的图案做为背景图案。
同时我们也可以选择背景的颜色,在本范例中我选用最常为大家使用的渐层蓝色做为安装程式的背景颜色。
以上设定见图六
图六 设定文字及背景颜色。
此外我们还可以决定是否要提供反安装程序,在本例中,我选择提供自动反安装。见图七
图七 提供反安装程式。
设定C++Builder的额外选项
由於bcbmail使用了Borland Database Engine (BDE)做为储存信件的工具,因此我们必须安装 BDE,此时我们只要将BDE的选项打勾即可。见图八。
图八 设定Borland Database Engine (BDE)
除此之外,我们尚可对BDE做逐项设定,如此便可选择性地安装 BDE,只选择必要的档案安装即可。在本例中,因为bcbmail使用的是Paradox资料库,因此我们只要安装Paradox的资料库引擎即可。(图九之一)
再来若是你使用了别名 (Alias)的话,还必须设定 Alias,将使到到的Alias名称加入列表中。(图九之二)。而後你可以选择是否将设定储存。(图九之叁)。最後就是一一设定各个别名 (Alias)。别名的性质包含使用的资料库类别、路径、及必要的参数。
完成以上程序後,我们就将C++Builder的额外选项设定完成了。
图九之一 选择资料库引擎
图九之二 加入别名(Alias)。
图九之叁 决定是否储存 .CFG档名。
图九之四 设定各个别名的性质。
设定群组及档案元件
在完成了BDE的设定之後,我们就可以设定各个程式群组及档案。首先你会看到如下的画面,由於先前我们指定使用了 BDE,因此除了一般的程式群组之外,另外又多了叁个BDE相关的档案。(图十)
图十 设定程式群组
使用档案治理员
设定程式群组必须使用档案治理员以Drag&Drop的方式将档案加入,此时我们可以执行 【Launch EXPlorer】来执行档案治理员,然後将程式所需的档案一一置入档案列表中(图十一)。
图十一 利用档案治理员将所需档案以Drag&Drop方式置入列表中。
另外有一点必须要非凡注重,由於Install Shield并不会自动将BDE的中文驱动程式加入列表内,因此你还必须自行找出电脑中BDE所在位置,然後将中文驱动程式FAREAST.BLL加入列表中(图十二)。
图十二 加入中文驱动程式。
设定安装程式的对话盒
Install Shield可以由使用者决定安装程序中出现的对话盒。你可以自行决定该对话盒出现与否,一般来说Install Shield会替我们设定内定值,若你没有额外的设定,直接沿用即可(图十叁)。
图十叁 设定对话盒使用与否
设定Registry
大部份的程式都没有使用到 Registry。但是有些程式,如使用VxD的驱动程式以及以BDE都会利用Registry来记载参数。由於C++Builder内附的Install Shield版本会自动为BDE修改Registry ,因此我们不须做额外设定。但是若你的程式利用Registry来记载参数的话,就必须在Install Shield中一一设定之(图十四)。
图十四 Registry的设定画面
设定档案夹及ICON
设定档案夹及ICON是安装程式必备的功能,我们可以在Windows系统中为我们的程式开一个档案夹,并设定各个可执行档的 ICON,如此一来使用者在执行完安装程式後即可经由【开始】工具列中找到程式,然後执行它了(图十五)。
图十五 设定程式的档名及其ICON
测试程式及母片制造
在完成以上设定之後,我们就可以先行测试此程式,Install Shield提供了一个很方便的方法让我们可以直接在整合环境中测试安装程式,你只要直接选择TestRun即可。不过在测试之前,你必须将先前所做的设定,交由Install Shield产生母片,它共提供CD-ROM、 120MB、1.44MB及1.2MB四种不同的母片型式,你可以依自己的需要指定之(图十六)。
结论
在母片测试无误後,你就可以直接将母片交由其他人安装执行,或是量产了。看完了以上的介绍你是否跃跃欲试呢?基本上,我认为Install Shield在实在大大地简化了安装程式的写作,从此我们再也不必为撰写复杂的安装程式,一切的工作都可交由Install Shield在弹指间完成。
图十六 指定母片型态