您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > installshield安装程序实例
1of35一个完整的安装程序实例—艾泽拉斯之海洋女神出品前言Installshield可以说是昀好的做安装程序的商业软件之一,不过因为功能的太过于强大,以至于上手和精通都不是容易的事情,之前都是用Installshield的ProjectAssistant对付过去的,这次做这个安装程序,为了实现一些功能,必须写代码,国内外现成的资料很少,而且很多都语焉不详,自己反复啃了多次,对比Installshiel自带的help,才明白资料所表达的意思。这个安装程序虽然比较简陋,在行家眼里可能是小菜一碟,但是也花了笔者一个星期的时间,阅读了很多资料,啃了好几天英文help,集成了很多先驱者的经验,也费了自己不少心血做成的,对每一段代码的用处、每一个用到的函数都进行了详细的说明,因此转载时请务必保留转载出处和由艾泽拉斯之海洋女神出品的字样;如需刊登,请与作者联系。在此要感谢吞硬币的小猪,天下晓明,余满青,海洋C++乐园(此海洋不是彼海洋)等大虾在互联网上的无私奉献,他们的贴子和博客给了我很大启示。因为本人是做java出身的,因此对这种类C++语言还是第一次接触,有理解不当之处,请朋友们指正。欢迎Email至little_fairycat@126.com2of35第一部分:基本设置....................................................................................................................................................................................................................3第二部分:脚本编程..................................................................................................................................................................................................................121.显示软件许可协议......................................................................................................................................................................................................132.判断是否安装了本软件所需要的先决软件或运行环境..........................................................................................................................................153.用户的输入信息、所选安装路径、所选安装组件显示在安装界面上..................................................................................................................164.根据用户选择的组件,从外部文件夹拷贝相应的文件到安装目标路径的文件夹中..........................................................................................205.如果用户选择了文档feature,则把文档文件夹拷贝进来,并且对该文件夹进行盲读,为每一个文档创建一个在开始菜单下的快捷方式216.在安装结束时,显示readme.txt文件.......................................................................................................................................................................237.在安装结束时,允许用户选择是否显示桌面快捷方式..........................................................................................................................................258.在安装结束后,启动指定的程序..............................................................................................................................................................................259.安装结束后,为JDK设置一个环境变量.................................................................................................................................................................2610.完美卸载..................................................................................................................................................................................................................27第三部分:其他..........................................................................................................................................................................................................................301.修改显示界面的风格..................................................................................................................................................................................................302.编译打包......................................................................................................................................................................................................................303of35正文需求:公司做了一个软件产品,1.该软件运行需要JDK环境(不是JRE,因为该软件要向windows注册一个服务,用到了JavaService,JDK才支持这个功能;不过这里侧重于判断是否安装了某软件是否安装,而不是纠缠于该装JDK还是该装JRE);2.由于是Server-Client形式的,需要允许用户选择安装组件,比如A机只装Server端,B机只装Client端;3.文档不打包在安装程序里,直接存放在光盘文件夹下方便用户查看,同时允许用户指定是否安装文档到计算机上(为什么这样做,后面说明详细原因);4.该软件会以授权形式发放给用户,不同的用户,软件本身可能相同,而不同的只是授权文件和一些配置,因此希望授权文件和配置文件不打包在安装程序里,而直接存放在光盘里,以减少可能的重复打包安装程序的劳动;5.在安装完毕后,希望能自启动程序(因为该软件需要在安装完毕后启动一个程序,该程序实现向Windows注册服务的功能,该程序昀好由安装程序启动,而不是由客户手动启动)。6.希望有反安装程序本文提到的“外部”指不打包在安装程序里的,与安装程序一起存放在光盘里的一些文件夹,这些文件夹包含了安装中所需要的文件,同时也可能有其他用途,因此不适合直接压缩打包在安装程序里。该实例实现了如下功能:1.显示软件许可协议2.判断是否安装了本软件所需要的先决软件JKD1.6.0_04,如无,则启动外部安装程序进行安装(同样原理可以用来判断是否安装了其他软件,只要该软件在注册表中有键值)3.安装允许用户选择需要安装的组件4.用户的输入信息、所选安装路径、所选安装组件将显示在安装界面上(Installshield虽然自带了此界面,但是默认是显示为空的,需要写脚本来显示信息)5.根据用户选择的组件,在开始菜单显示程序的快捷方式(同样适用于桌面快捷方式,后面做详细说明)6.根据用户选择的组件,从外部文件夹拷贝相应的文件到安装目标路径的文件夹中7.根据从外部拷贝进来的文件,创建快捷方式(这里主要是拷贝文档,并在开始菜单中创建快捷方式)8.在安装结束时,显示readme.txt文件9.在安装结束后,启动指定的程序10.完美卸载笔者所用的环境为Installshield12PremierEdition,WindowsXPwithSP2,该环境下建立的工程可以直接使用在Installshield2008PremierEdition下,Installshield2008在打开Installshield12所建的工程时会提示你是否需要进行Upgrade,确认即可,软件会自动为你进行升级,很方便。下面我们一步一步来建立一个基本的工程,并且使用脚本来完善和丰富所需功能第一部分:基本设置1.打开Installshield12PremierEdition,新建一个InstallscriptMSIProject,这种被称之为半脚本程序,因为兼具BasicProject基本类型和InstallscriptProject全脚本类型两者的优点,我比较喜欢用。像我这样需求的,既要用到Wizard的便利,又想写一点脚本来实现一点自定义操作的,就比较适合用这种类型啦。选择类型为WindowsInstaller|InstallScriptMSIProjcet,输入工程名,指定工程所在的文件夹。2.界面会切换到ProjectAssistant,我们先从这里开始把工程的基本组件和基本文件建立好。4of353.在ProjectAssistant界面的底部,会有一个引导动作条,在建立该工程的基本结构和文件时,我们都将在此界面进行操作,下文都将以“引导条”来指代这个引导动作条。4.点击引导条上的ApplicationInformation这里输入:公司名,公司名将会出现在Setup.exe的注解中软件名,将会出现在安装过程的左上角标题栏上版本号,没看到在哪,不过自己比较方便地知道自己在编译哪个版本的软件公司网址,没看到在哪,而且如果该公司没有网址呢?而且这里有点bug,好像默认的值总是会报一个String_
本文标题:installshield安装程序实例
链接地址:https://www.777doc.com/doc-5398897 .html