123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256 |
- 用InstallShield制作安装程序的步骤是怎么样的?1 建立工程文件
- 打开InstallShield 相关应用程序,双击“Project Wizard”,按照向导提示输入工程的相关信息。当然这里输入的是给相关变量赋值,在编译之前可以对其进行修改,打开资源Resources,对其相关属性的变量进行重新赋值即可;另外,还需对菜单项“Project”中的产品名称进行更改。
- 2 文件组配置
- 打开文件组File Groups工作区,展开树,给相应的文件组链接对应文件,对应文件会显示在相应的区域。单击相应文件组,对其其属性进行设置,重要的有: [Shared]指定当前文件组中的文件是否为共享文件,即该文件是否被多个应用程序共同使用,若设为共享文件InstallShield在应用程序安装过程中会自动处理这些文件的注册;[Self Registered]设置当前文件组中的文件是否自注册,这个功能能够将相关文件在安装过程中进行注册,卸载时也会自动将这些注册信息删除; [Compressed]指定当前文件组中的文件在建立媒体库时是否被压缩,这里的设置在安装媒体向导的磁盘类型中不选择[Data as files]复选框是有效的,否则不管如何设置应用程序即不存储在电缆文件中也不被压缩;[Overwrite]指定当前文件组中文件覆盖终端用户计算机系统中已存在同名文件的条件;[Destination]指定当前文件组在安装过程中被传输的目标位置。
- 3 组件设置
- 打开组件“Components”工作区,可以新建组件,组件的重要属性有:“Status Text”是标志在复制对话的进度条上看到的文本;“Display Name”是给定当前组件显示给终端用户的文本;“File Need”是指定组件的级别,【Critical】对于安装程序不允许终端用户不选择该组件,【Recommended】是建议终端用户应该选择安装该组件,【Standard】如果终端用户没有选择该组件,不会显示任何信息;“Include in Build”是表示是否将该组件包含到发行媒体中,暂时将本特征不包含到发行媒体给这个组件留下位置,以便以后升级。“Required Components”是将此组件必需的其它组件链接在一起;“Included File Groups”可以为当前组件增加和删除与之相关的文件组;其它属性默认即可。
- 4 在Setup.rul底稿文件中添加代码
- 充分利用InstallShield资源可以省去不少代码编写,特别是InstallShield提供的一些内部函数,可以实现丰富的功能,需要特别注意的是大小写是严格区分的。
- 5 编译工程
- 从【Build】菜单中选择【Compile】选项对脚本进行编译;编译通过后选择【File】菜单中的【Save】选项进行脚本修改的保存。
- 6 定制MEDIA(安装媒体)
- 从【Build】菜单中选择【Media Wizard】选项启动媒体制作向导,按照提示一步一步进行,最后出现所设置的总信息,不妥后退进行修改,最后确认后按【完成】后定制媒体。
- 7 测试
- 文件安装媒体制作完成之后,就可以进行测试,从【Build】菜单中选择【Run Setup】运行,安装完成后可以通过【开始】菜单的【程序】中的快捷方式运行安装的应用程序。最后运行卸载程序将应用程序从系统中删除 。
- 三、安装程序初始化
- 在函数OnFirstUIBefore()中输入如下脚本代码进行初始化程序。
- 1 安装背景设置
- SetFont(FONT_TITLE,STYLE_BOLD|STYLE_SHADOW, "Arial");//设置字体
- SetTitle(@TITLE_CAPTIONBAR,0, BACKGROUNDCAPTION );//设置标题
- SetTitle( @TITLE_MAIN, 24, WHITE ); //设置对话框主题字体和颜色
- Enable( FULLWINDOWMODE ); //允许全屏显示
- Enable( BACKGROUND ); //允许背景设置有效
- SetColor(BACKGROUND,RGB (0, 128, 128)); //设置背景颜色
- 2 加载图片
- 在任何时候都可以加载图片以装饰安装程序,方法如下:
- svPicName = SUPPORTDIR ^ "pic6.bmp"; //定义图片路径
- DialogSetInfo(DLG_INFO_ALTIMAGE,svPicName,TRUE);//在对话框中显示
- svPicName = SUPPORTDIR ^ "pic2.bmp";
- PlaceBitmap(svPicName,13,0,0,FULLSCREENSIZE);//全屏显示图片作为背景
- 在加载下一幅图片的时候要先移去上一幅已加载的图片,方法如下:
- PlaceBitmap ("",13,0,0,REMOVE);
- 3 系统变量的设置
- nSetupType = TYPICAL; //预设默认安装类型
- TARGETDIR = "D:\\"^@PRODUCT_NAME; //设置默认安装路径
- svName = "Name"; //用户默认名
- svCompany = "Company"; //公司默认名
- svSerial = "123-EDC-532-386"; //序列号
- 四、定制程序组(项)
- function SetupFolders()
- NUMBER nResult,nIcon, nFlag;
- STRING szProgramFolder,szItemName,szCommandLine,szWorkingDir,szIconPath;
- STRING szShortCutKey, szProgram, szParam,svTmp;
- begin
- szProgramFolder = @PRODUCT_NAME;
- if (CreateProgramFolder(szProgramFolder) < 0) then
- return -1;
- endif;
- //设置快捷方式的工作环境
- nIcon = 0;
- szShortCutKey = "";
- nFlag = REPLACE;
- szWorkingDir = TARGETDIR;
- szIconPath = TARGETDIR+"\\"+@PRODUCT_KEY; //图标选择
- szItemName = @PRODUCT_NAME;
- szProgram = szIconPath;
- LongPathToQuote(szProgram, TRUE);
- szCommandLine = szProgram;
- if(AddFolderIcon(szProgramFolder,szItemName,szCommandLine,szWorkingDir,
- szIconPath,nIcon,szShortCutKey,nFlag)< 0) then
- return -1; //在开始菜单的程序组中增加启动该应用程序的快捷方式
- endif;
- if(AddFolderIcon(FOLDER_DESKTOP, szItemName, szCommandLine,
- szWorkingDir,szIconPath,nIcon,szShortCutKey, nFlag) < 0)then
- return -1; //在桌面上增加启动该应用程序的快捷方式
- endif;
- //卸载的设置
- szWorkingDir = WINDIR;
- szIconPath = SUPPORTDIR+"\\IsUninst.exe";
- szItemName = "卸载"+@PRODUCT_NAME;
- svTmp=PROGRAMFILES+"InstallShieldInstallationInformation\\"+PRODUCT_GUID+"\\setup.exe";
- LongPathToQuote(svTmp, TRUE);
- szParam = svTmp;
- LongPathToShortPath(szParam);
- svTmp=COMMONFILES+"InstallShield\\engine\\6\\Intel32\\ctor.dll";
- LongPathToShortPath(svTmp);
- szProgram = "RunDll32"+" "+ svTmp+",LaunchSetup";
- szCommandLine = szProgram + " " + szParam;
- if(AddFolderIcon(szProgramFolder,szItemName,szCommandLine,szWorkingDir,
- szIconPath, nIcon,szShortCutKey,nFlag)< 0) then // 在开始菜单中设置卸载快捷方式
- return -1;
- endif;
- end;
- 五、对象嵌入技术
- 使用InstallShield对象,我们可以很方便地安装关键的Windows技术,包括ODBC、Access、ADO、DAO、RDO、OLE DB、DirectX以及其它技术,只要按照InstallShield嵌入对象向导操作即可,这里以嵌入ODBC为例子详细说明:
- 首先利用 Windows控制面板中的ODBC数据源建立数据配置文件,需要与所建的数据库文件联系起来,这里是DOT.MDB文件,数据源名设置为DOT,退出后可以看到刚才建立的数据源。在Components工作区右击相应的组件,从弹出菜单中选择【Insert InstallShield Object】,打开对象浏览树,选中“NEW ODBC 3.51”,单击【Add Object】按钮将会把该对象加入到Resources工作区中的InstallShield Objects文件夹中以及刚才的组件中,然后就会有向导启动(嵌入其它对象时,没有向导说明已经完成,关闭对象浏览器即可),按照向导提示完成ODBC对象嵌入,在安装过程中会自行注册。大多数对象都是直接嵌入即可。
- 六、控件注册
- 方法一:用户手工注册,利用VC++自带的DOS命令REGSVR32.EXE(在\bin目录下)或者直接用下列方法:点击“开始”→“运行”;输入以下命令进行注册:
- regsvr32 < 文 件 名 > 注册一个控件
- regsvr32 /u< 文 件 名 > 解除某控件的注册
- 方法二:利用InstallShield的自注册功能,在文件组里新建一个文件组,这里取名为“BatchAPC 环境变量”,然后在这个新建文件组里链接需要注册的文件,这里是两个ActiveX控件MSCHRT20.OCX和MSCOMM32.OCX,将属性中的“Self-Registered” 设置为“Yes”,一般默认为“No”,这样就不需要编写代码来进行注册了。
- Scripts页面
- 项目工作区窗口的Scripts页面用来管理安装程序的脚本文件,在该页面中各项脚本文件均以树状列表的型式显示出来的。每个目录项前都有一个图标,且顶层目录项前还有一个套在方框中的符号"+"。双击顶层目录项或单击最前面的"+",则直接打开并显示该目录项的所有子项,此时顶层目录项前的"+"变成"-"号;再双击顶层目录项或单击最前面的"-",则该项目的所有子项被收缩,只显示顶层目录项内容,此时顶层项目前的"-"又变成了原来的"+"号。
- 展开顶层目录项的所有子项,双击以.rul为扩展名的脚本文件项,则在开发环境的右边的文档窗口中显示出该脚本文件的内容。为了增强安装程序代码的可读性,脚本文件的源代码内容往往是以不同颜色来显示的,各种颜色所代表的含义如下所示:
- 白底黑字 一般文本
- 黑底白字 被选定的文本
- 青色底黑色字 文本的行标记
- 白底红字 InstallShield的函数
- 白底蓝字 InstallScript脚本语言的关键字
- 白色底品红色字 常数
- 白色底紫红色字 用""符号括起来的文本内容
- 白底绿字 注释
- Components页面
- 项目工作区窗口的Components页面用来管理安装程序的各项组件。缺省时,一个安装项目通常有程序文件(Program Files)、示例文件(Example Files)、帮助文件(Help Files)以及共享的DLL文件(Shared DLLs)共四个组件。双击某个组件目录项,则在主界面的右边窗口中显示出该组件相关属性的完整列表,这些属性都可以方便地进行相应的修改。
- Setup Types页面
- 项目工作区窗口的Setup Types页面用来管理提供给用户的安装类型。缺省时,一个安装项目通常有Typical(典型)、 Compact(紧凑)和Custom(定制)共三种安装类型。双击某种安装类型,则在主界面的右边窗口中显示出该安装类型相关的组件。
- 在组件中,凡是文件组前面有一个带钩号(√)的图标,表示该文件组已被选入相应的安装类型中。反复双击文件组前面的图标可在"选入"和"不选"之间进行切换。
- Setup Files页面
- 项目工作区窗口的Setup Files页面用来管理在安装过程中所需要的安装文件,它通常有含有下面一些内容。
- Support Files/Billboards页面
- (1) Splash Screen(启动画面)
- InstallShield用Setup.bmp作为安装程序的启动画面。若在不同的语系(中文、English)中放置各自的位图文件,则安装程序将根据安装环境的不同语系选用相应的Setup.bmp;若将该文件放置在Language Independent(与语系无关)目录项中,则不管操作系统是何种语系,都将以此位图文件作为程序安装的启动画面。
- (2) Language Independent(与语系无关)
- 它允许用户为各种操作系统或专门为Windows 95/98/NT操作系统指定相应的安装文件,这样不管怎样的语系,安装程序都会根据相应的操作系统来拣选相应的文件。
- (3) 其他语系相关的文件
- 它允许用户为各种操作系统或专门为Windows 95/98/NT操作系统指定相应的安装文件,这样安装程序会根据相应的语系和语系下的操作系统来拣选相应的文件。
- (4) Advanced Files(高级文件)
- 在用具体的媒介发布时,允许用户在相应的媒介中放置一些非压缩文件。
- File Groups页面
- 项目工作区窗口的File Groups页面用来管理安装项目所需要的文件组。缺省时,安装程序项目通常有Example Files(示例文件组)、Help Files(帮助文件组)、Program DLLs(应用程序所需的DLL文件组)、Program Executable Files(应用程序文件组)以及Shared DLLs(共享DLL文件组)共五个文件组。
- 双击某个文件组,则在主界面的右边窗口中显示出该文件组的相关属性,用户可以方便地进行修改。
- System configuartion页面
- 用来管理安装项目所需要的安装资源。缺省时,一个安装项目通常有String Table(字符串表)、Registry Entries(注册项)等
- Media页面
- 项目工作区窗口的Media页面用来管理程序发布时的媒介。在该页面中包含Media Build Wizard(媒介创建向导)、缺省的媒介以及用户新创建的媒介等项,单击"Media Build Wizard"将开始媒介创建向导,用来创建新的媒介。
- 需要说明的是:在各个页面中,右击鼠标时都会弹出相应的快捷菜单,它包含当前状态下的一些常用操作。
|