蒅 Install Shield 的使用介绍、/一莃前言螇当我们在经历了长久的宿夜匪懈之後,完成了一个令自己自豪的程式此时我们就必须为作品 撰写安装程式, 在传统的 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 、 SQLLink 及 C++Builder 的 RTL ( Runtime-Library )增加额外的选项,见图一膂图一 In stall Shield C++Builder Editition 的额外选项芇而Visual C++ 版本也会针对 ODBC DAO等做额外的处理见图螆在此我们讨论的对象以 C++Builder的版本为主不过基本上它们都是共通的,因此若是你学会了这一套,你也同时掌握了其他版本的主要部份,只要对其差异部份稍加注意即可肄开启一个新的 Project蚁在此我们以本书中的 email程式-bcbmail来说明安装程式的设定首先我们必须开启一个新的安装程式专案袇图叁开启一个新的专案档膃在设定完专案名称及目录路径後,我们就可以按【 Create】来建立一个新的专案档了。
附带说明一点,该专案档是以 IWZ为名,以此范例而言,你就得到一个名为 bcbmail.iwz 的专案档肀In stall Shield 完全攻略螈在建立一个新的专案档後,你就可以开始逐项设定安装程式所需之资讯了图四为我们所需设 定的项目,其中打勾的部份表示已经设定过的项目,未打勾的项目则为尚未设定的项目蚄你并不需要一一设定所有的项目,只有在需要时在设定即可举例来说,若你不需修改 Registry ,那麽你就不必去设定 【Make Registry Cha nges 】项目薅以下我会以bcbmail为例子逐项说明之以 bcbmail为例是因为它不仅是一个完整的范例,同时也使用到了 Borla nd Database Engine ,因此你可以由此学习到一个使用 BDE的应用程式,在利用In stall Shield 来制作其安装程式时,所需注意的事项Setup ChecklistSet the Visual Design 設宇稈式外觀忌目錄° □為pplic歙im Fqfe前口仃“ □ Main Window“叵I Featur esSpecif install Shield Objects for Sorl^nd C+-*宀□ General Options 設定 Cf+Builder 韻外進項I “ □ Advanced OptionsSpecif components «nd Files“111 Groups and Files 势罡檔虽 B 群爼“ □ Camponents□ Setup TypesSelect U&er intertwe Components7 Q Dial曲 Boxes 設定 DiadoaMake Registry Changes0 Key^ fl改 Re^i阳3 ValuesSpecif Folders and Icons"LU General Settings 最罡擋案夾 EICON2 叵1 Advanced SettingsRim Disk BuilderDisk Builder 暉立于黝拡舟Test the instaiE^tionTest Run 測試安裝程式Create Distribution MediaIII Copy to Ftoppy 拷貝至磁冲中(tm)Click h^re for p^ge 2葿图四In stall Shield 的各个细部选项。
蚆设定程式外观及目录蚃首先在【App Info】分页设定程式名称、可执行档名称、版本号码、内定程式安装目录等讯息 见图五Set the Yinwl Design卫pp Info I Main Window | Featuiss |Application Name::程式習稱Bnov/se...版本號碼A pplic attoiL Executable: 可執行檔(主程式)名稱 | [Program Filfis]\Bcbniail.ex®Version:fo|匚讥片「Te:h :皿公司名稱區値讪 DtstijwtiQn Directoiy:'JCyleiTech Inc\BCBMail內定目錄名稱確定 | 取消 |窥明|艿图五 设定程式目录及相关讯息螇接着设定是否使用 Bitmap或是文字来做为背景在此我使用文字做为背景文字,你也可以使 用图案为背景,不过在 C++Builder附送的版本只能支援 16色的图案,因此你不可以使用超过16色以上的图案做为背景图案螂同时我们也可以选择背景的颜色,在本范例中我选用最常为大家使用的渐层蓝色做为安装程式 的背景颜色。
薂以上设定见图六Set the Yinwl DesignApp Infc14血l Window | FeatuD&s ]InshllShieU E xpiess supports 16-calor bitmaps onl^.Main Title「S席Text使用文字做爲標題|Eb ony Meil-by G«iiJ35--httpicyb^rtech.twrtbd .hjc 1 Erovae. 1 標題文讹 Color |Dithe«d BIikZJ背景顔色窥明I薅图六设定文字及背景颜色腰此外我们还可以决定是否要提供反安装程序,在本例中,我选择提供自动反安装见图七Set the Yinwl DesignApp Infc | Main Window F&atuie? |Choose the featares you want bi yomr Setup臣 Auitomatic Unin^ialleii確定 | 取消 | 窥明 |螀图七 提供反安装程式薆设定C++Builder的额外选项节由於bcbmail使用了 Borland Database Engine ( BDE做为储存信件的工具,因此我们必须安装BDE,此时我们只要将 BDE的选项打勾即可。
见图八蒀图八 设定 Borland Database Engine (BDE)蚇除此之外,我们尚可对 BDE做逐项设定,如此便可选择性地安装 BDE,只选择必要的档案安装即可在本例中,因为bcbmail使用的是Paradox资料库,因此我们只要安装 Paradox的资料库 引擎即可图九之一)蚅再来若是你使用了别名 (Alias )的话,还必须设定 Alias ,将使到到的 Alias名称加入列表中图九之二)而後你可以选择是否将设定储存图九之叁)最後就是一一设定各个别 名(Alias )别名的性质包含使用的资料库类别、路径、及必要的参数賺.BDE Irstallaion T^peC FulIBDE hstalhtkn(* ^Partial hstoiatior^But Driver ypesCutryEngire [哗w战 ParadoB Driver厂 SQL Engine厂 dBase Driver厂 Q jciy Ry EsHompIc Engine厂 ASCII TwrRrivFI- ODBC Driver氏上一血b)[t—曲恥|盂旺I蒅图九之一选择资料库引擎莀图九之二 加入别名(Alias )A lift盘 tfpp " n二比The ne/i alias created cn itieia get 裁報刘 can besdVEd for 3olh L6- and 32oit apjlicatons.匚lieck:he boM bebw to sawe (he 5=trngs for boti «p0ic4ticnpwrtMi aimfRirai r i n r» w ra i si-is-wmi-i «ir mni-i airmrirBi «inr irmmnr mmHinr irmmeir | 厂 .CFG 陆 fw bn出 1S- anc ^2-bitjp^caticneJ蚇.’上一少® |[¥—知| 恥| 謊旺|蒆图九之叁决定是否储存.CFG档名蝿图九之四 设定各个别名的性质蒇设定群组及档案元件薇在完成了 BDE的设定之後,我们就可以设定各个程式群组及档案。
首先你会看到如下的画面, 由於先前我们指定使用了 BDE個此除了一般的程式群组之外, 另外又多了叁个 BDE相关的档案(图十)蒃图十设定程式群组膈使用档案管理员莅设定程式群组必须使用档案管理员以 Drag&Drop的方式将档案加入,此时我们可以执行【Launch Explorer】来执行档案管理员, 然後将程式所需的档案一一置入档案列表中 (图十一)Gn'jj? I Cuj.ijujiujL: ] 3c hj |File Opjjs:J lOOTlfll 如X^LTASTJT^.7|S /.1-IAS.ME \ / H] rs0C'?:.cB i :/ gj IMWUX Mfeljl oirriOKR, 却 OiTCRCJX MF\ 回 7F.ZlSEB^ DB 1VS] lEASHB^ W+ _i DD^mrrfaL± Lj RD*.T1AFT RT.T *hs1] U BDiMHCNFrl;Gr&mp tJomcc |?m 37WW Piss~Ecf luiuLiji i 丄 ypIN^TAUDlF.^程式所需檔老Adi GmupLZcdiljjijxup匚lick the LuuchEx^lfier bu-fc»k k dispLey tv V^iniov;匡切km. Td tdl men files U)ik si咚g 剪Hly 加^ zd Jlu(. 2ijt;f fjuu E^jjuuui iiiJL Ou IJrLeweX E^lcitr.,.FLa D«hik^ijphy full ^odbxmmt f” fik$袂图十一利用档案管理员将所需档案以Drag&Drop方式置入列表中袈另外有一点必须要特别注意,由於 In stall Shield 并不会自动将BDE的中文驱动程式加入列表内,因此你还必须自行找岀电脑中 BDE所在位置,然後将中文驱动程式 FAREAST.BLL加入列表中(图十二)。
螅图十二加入中文驱动程式芁设定安装程式的对话盒蚈In stall Shield可以由使用者决定安装程序中岀现的对话盒 你可以自行决定该对话盒岀现与否,一般来说In stall Shield 会替我们设定内定值,若你没有额外的设定,直接沿用即可(图十叁)袃图十叁设定对话盒使用与否螁设定Registry荿大部份的程式都没有使用到 Registry 但是有些程式,如使用 VxD的驱动程式以及以 BDE都会利用Registry 来记载参数由於 C++Builder内附的In stall Shield 版本会自动为 BDE修改Registry ,因此我们不须做额外设定但是若你的程式利用 Registry 来记载参数的话,就必须 在In stall Shield 中一一设定之(图十四)芅图十四Registry 的设定画面膀设定档案夹及ICON腿设定档案夹及ICON是安装程式必备的功能,我们可以在 Windows系统中为我们的程式开一个档案夹,并设定各个可执行档的 ICON,如此一来使用者在执行完安装程式後即可经由【开始】工具列中找到程式,然後执行它了(图十五)莆莄图十五设定程式的档名及其 ICON薀测试程式及母片制造袀在完成以上设定之後,我们就可以先行测试此程式, In stall Shield提供了一个很方便的方法让我们可以直接在整合环境中测试安装程式,你只要直接选择 TestRun即可。
不过在测试之前,你必须将先前所做的设定,交由 In stall Shield产生母片,它共提供 CD-ROMI 120MB、1.44MB及1.2MB四种不同的母片型式,你可以依自己的需要指定之(图十六)莈结论蒂在母片测试无误後,你就可以直接将母片交由其他人安装执行,或是量产了看完了以上的介绍你是否跃跃欲试呢?基本上,我认为 In stall Shield 在实在大大地简化了安装程式的写作,从此我们再也不必为撰写复杂的安装程式, 一切的工作都可交由In stall Shield在弹指间完成蚀图十六指定母片型态。