一步一步学IExpress 孙彦清 2000年 第10期 #1  一、前言   大家一定知道Microsoft的“CAB”压缩包吧,多年来,Microsoft一直在使用“.cab”文件来压缩要靠磁盘分发的软件。最初,这些文件用于减少装载产品所需的软盘数目(还记得Windows95当初的软盘版吗,它就是这样发行的,要十几张磁盘呢)。现在,“.cab”文件则针对Internet服务器上的Web内容,用于减小文件大小和相应的下载时间。到目前为止,Microsoft的好多软件,诸如Windows9x等仍是以这种格式发表的。   IExpress就是Microsoft专门为简化“CAB”软件的安装过程而设计的工具。它使用了循序渐进的IExpress向导,可以创建“.CAB”压缩包和自解压缩的“CAB”文件,还可以自动运行内部所包含的安装程序。我在这里介绍给大家的目的,就是利用IExpress制作属于我们自己的“CAB”产品。 #1  二、IExpress的安装   在Microsoft的IE5(Internet Explorer 5.0)中包含了IExpress工具,在IE5目录下找到“Ieak5.exe”文件并运行,系统开始安装IE5管理工具包,安装完成后,在目录“\Program Files\IEAK\Tools\”中就已包括了IExpress的基本文件,可以直接运行IExpress.exe即可。 #1  三、IExpress的功能   ●建立“.CAB”压缩包,并支持分卷压缩。   ●建立安装信息文件“.SED”。   ●建立“CAB”自解压文件“.EXE”,免除了寻找“CAB”解压软件的苦闷。   ●建立可运行内部安装程序的自解压文件,使解压、安装一气呵成。 #1  四、IExpress的三种运用方式   IExpress的运行界面为西文界面,但支持中文操作,生成的自解压文件的执行界面完全是中文界面,与Microsoft一般的软件安装界面类似。   运行文件“IExpress.exe”,出现如^10020201a^1所示的IExpress向导界面。   我们选择界面中的“Create new Self Extraction Directive file”新建一个“SED”文件,再建立自解压文件或“.CAB”压缩包。   “SED”文件是一个在建立“CAB”自解压文件的过程中形成的一个信息提示文件(Self Extraction Directive),它包括了诸如许可协议、文件各类提示等。如果你以前已经建立了这样的一个SED文件,可以通过图1中的“Open existing Self Extraction Directive file”打开这个“SED”文件,利用它直接生成你所需要的自解压文件或“.CAB”压缩包。   在图1中选择“Create new Self Extraction Directive file”单选项,单击“下一步”,出现如^10020201b^2所示的目的选项界面。通过该界面中的三个不同选项,分别完成不同的工作:   “Extract files and run an installation command”表示建立自动解压文件且自动安装程序的压缩包。   “Extract file only”表示仅建立自解压文件。   “Create compressed files only”表示仅建立CAB压缩包。 #1  五、建立自解压的CAB压缩包文件   ●程序标题输入(Title)   在选取“Extract file only”选项后,系统弹出压缩包标题输入框,如^10020201c^3所示,标题项必须输入。这里输入的标题在执行自解压文件时,用于显示执行文件的属性。如图5所示。   ●输入确认提示信息(Confirmation prompt)   单击“下一步”后出现“确认提示”框,如^10020201d^4所示。这一步为程序执行过程中的控制提供了机会,如^10020201e^5所示,只要按“Y”或“N”即可。当然也可以选取“No prompt”单选项后不输入提示。   ●制定许可协议(Licens agreement)   图4后继续下一步就到了制订许可协议的界面了,如^10020201f^6“A”所示,我们可以预先编写一个文本格式的协议文件,在“Display a license”对话框中输入文件名即可,执行后的结果如图6“B”所示,必须按“Y”才能继续安装。当然在这里也可以跳过许可协议这一步。   ●选择压缩文件(Packaged files)   制订完许可协议后出现如^10020201g^7所示的压缩文件选择窗口,通过“Add”将你所要压缩的文件添加到这个窗口,还可以利用“Remove”移去不需要的文件。注意在这里应包括所有你所要压缩的文件,千万不要将一些只读、系统及隐含类文件给漏掉。选好后单击“下一步”,弹出工作完成提示信息输入框,如^10020201h^8“A”所示。   ●任务完成提示信息输入(Finished message)   这也是一个可选项,当激活“Display message”后,可在对话框中输入提示信息,用于给用户以任务完成的提示。如图8“B”所示。如果不想提示则选择“No message”选项即可。   ●指定压缩文件名(Package Name and Options)   完成信息输入完毕后,单击“下一步”,出现压缩文件名输入界面,如^10020201i^9所示。可以在文本框中直接输入一个以“.EXE”命名的全路径文件名,也可以通过“Browse”更新一个已存在的文件。注意,在图9中,有两个复选项,其中选择“Store files using Long Name inside Package”后压缩包中的文件以长文件名存在。   ●保存“SED”文件(Save Self Extraction Directive)   自解压文件名确定后,一般还推荐保存前面输入的这些提示信息,即它的“SED”文件,如^10020201j^10所示。保存了这些信息后,我们今后可以直接利用它建立其他类似的文件包,当然还可以对这些信息进行必要的修改。一般将它保存为自解压文件的同名即可。当然也可以通过单选“Don't save”不保存这些信息。   ●生成自解压文件   上述工作做完后,开始对所选文件进行压缩,其压缩过程是在Windows的DOS窗口下进行的。压缩完成后,弹出如^10020201k^11所示的压缩报告,在这里列出了以下内容:文件压缩后的尺寸为647036字节、压缩比为60.48%、压缩时间为7.96秒、压缩能力为每秒131.25千字节,压缩完整结束。单击“完成”,全部过程结束,文件形成。 #1  六、建立自解压安装文件   如果在图2中选择了“Extract files and run an installation command”选项,系统在建立自解压文件后还要建立软件安装选项,使文件解压后直接运行内部的安装程序,进行软件安装。其操作过程类似于前面讲到的“建立自解压文件(Extract file only)”的全部过程,只不过在选择了所要压缩的文件之后(参见图7),出现如图12所示的安装程序选择界面。   ●安装程序选择(Install Program to Launch)   在^10020201l^12中,“Install Program”对话框用来输入软件的安装程序文件名(即用这个文件进行安装),一般为可执行文件或安装信息文件(.INF),这个文件必须已经列入图7所示的窗口中,即在压缩包内。我们通过图12“Install Program”中的下拉框也可以选择系统已找到的这个文件,一般为Setup.exe或Install.exe、*.inf等。   在“Post Install command”对话框中可以输入安装完成后自动执行的文件名,因为我们往往在程序安装结束后可能须要立即运行某一程序。这里的程序可以是压缩包中的文件,也可以是其它位置的其它文件。   ●重新启动设置(Configure reboot)   单击“下一步”后同样出现“完成提示信息”和“自解压文件名”输入界面,如图8“A”、图9所示,之后弹出如^10020201m^13“A”所示的重新启动设置界面,安装后需要重新启动的程序,可选“Always reboot”或“Only reboot if needed”,如果在启动前不想出现如图13“B”所示的提示,则可使“Do not prompt user before reboot”选项有效即可。单击“下一步”后,系统同样让你保存“SED”文件,其后的操作过程同前介绍,不再赘述。 #1  七、建立CAB压缩包   如果在图2中选择了“Create compressed files only”,系统则只对所选择的文件作一压缩打包处理,即建立一个“CAB”压缩包,其过程相当简单。   单击“下一步”后,系统直接进入压缩文件选择窗口,如图7所示,选择文件后,指定压缩包名及“SED”名,开始文件压缩,中间的诸如许可协议、控制提示、完成提示等一概无效。不过压缩包文件名输入界面与前面提到的有点不同,参见图14和图9的比较。   在^10020201n^14中,文件名应该是一个8.3格式的“.cab”文件。如果想进行磁盘分卷压缩,则可使“Options”框中的“Create fixed size CAB file(s)”选项有效,这时可形成最大尺寸为1424KB的分卷压缩包,以利于软盘储存。分卷压缩包名并不是在图14中直接输入的那个文件名(如e:\g5ax),而是在这个文件名的基础上,依次增加注释符“_1、_2等”,才生成分卷压缩包名,如“g5ax_1.cab、g5ax_2.cab”等。单击“下一步”后弹出压缩包信息设置界面,如^10020201o^15所示。如果不进行分卷压缩,则不出现该界面。在“INF”文件中保存了压缩包与源文件的有关信息,包括磁盘标注、源文件分配压缩情况等。“下一步”后,系统同样提示保存“SED”文件后开始进行文件压缩。 #1  八、利用已存在的“SED”信息,建立目标文件   不管建立的文件是自解压文件、安装文件,还是“CAB”压缩包,在建立它们的同时,都可以根据需要建立它们的“SED”文件。在一般的安装程序中,诸如许可协议、提示信息等基本雷同,我们可以把这样的“SED”信息当作一个模板来处理,在制作安装程序的过程中将对我们有很大的帮助。这一过程我们可以通过图1的“Open existing Self Extraction Directive file”来完成。   1.直接建立目标文件   在图1选择“Open existing Self Extraction Directive file”并输入一个已存在的“SED”文件后(如前面图解生成的“g5ax.sed”),出现对话窗口。单选“Create Package”时,系统将完全按照这个“SED”信息自动完成对文件的直接压缩工作,所以,欲压缩文件不作任何增删是最主要前提。   2.修改“SED”信息,建立目标文件   如果选择“Modify Self Extraction Directive file”选项,建立目标文件的整个过程和前面介绍的新建文件(Create new Self Extraction Directive file)过程完全相同,只不过在这里可以对各个环节中已自动引入的这个“SED”文件的信息重新进行修改,也可以对已选文件重新进行选择,这极大地方便了我们的操作。 #1  九、CAB压缩包的解压   IExpress不支持“CAB”压缩包的自动解压功能,要完成对它的解压,一方面可直接利用Microsoft的DOS解压程序“EXTRACT.EXE”,它在Microsoft的好多软件中都有,本工具中也有,其使用方法不再介绍。另一方面还可以利用现在比较常用的压缩解压软件,如WinZip、WinARJ等都支持对“CAB”压缩包的解压操作,还可以直接对“CAB”自解压文件进行手工解压,操作相当方便。