delphi
编程技巧
源代码在线查看: 制作规范化安装程序的基本方法 (2001年3月17日).txt
制作规范化安装程序的基本方法 (2001年3月17日)
网友更新 分类:数据库 作者:朱运喜 推荐:hg605 阅读次数:418
(http://www.codesky.net)
--------------------------------------------------------------------------------
制作规范化安装程序的基本方法
朱运喜
当你完成一个应用软件的开发后,如果你的软件不是那种“绿色”产品,那么你还需要为分发该软件而做一个规范化的安装程序。这是使你的软件“走向世界”所不可缺少的一步。
一般而言,一个规范化的安装程序应该满足以下几个条件:
1.只需安装一次。也就是安装完后,用户不用进行其它的设置就能使用你的软件。(应用软件内部的参数设置是另一回事)。
2.要保证目标盘上“简洁、干净”。就是说你的安装程序能根据用户所选择的功能,仅安装所需的部分,不把多余的文件复制到用户的目标盘上,特别是不向注册表中添加无用的信息。
3.要保证对注册表的正确使用,注册表实际上是一个Windows的系统数据库,所有应用软件都可用它存储一些必要的信息,例如用户注册信息、类的注册、系统配置信息等,但对注册表使用不当,就会导致系统性能的降低。
4.安全性。安装程序应具备对已安装系统进行必要检查的能力,同时还应具有卸载功能,让用户可以根据自身的需要卸载你的软件。在做这些的同时,还不应影响其他应用软件的正常运行;
下面介绍一下满足以上条件的安装程序的实现方法。
1.保证安装的一次性
要保证安装的一次性,在安装时就必须在用户端建立、配置一个完整的系统应用环境。不管你的应用软件在开发中使用了何种开发工具,在开发过程中需要什么开发环境,但是作为用户,他们没有必要安装这种开发环境,所以安装程序只需为用户配置你的应用软件所需的环境即可。
2.保证安装后的“简洁、干净”
要保证安装的“简洁、干净”,就必须动态地记录下用户的安装需求(由用户在安装过程中选择),再根据用户的需要动态地安装并配置你的应用软件。这里以InstallShield制作安装程序为例作一说明。该程序提供了三种安装方式:简洁、典型、定制。通过设置不同安装类型(定制类型由用户选择)中所包含的文件组来安装特定的文件。如果要处理注册表等其他信息,还须用Scripts程序实现。以下程序就可以判断用户选择了哪些组件:
function DialogShowSdComponentDialog2()
NUMBER nResult;
STRING szTitle, szMsg;
STRING szComponent, szInfo;
NUMBER nzInfo;
STRING szString;
begin
if ((svSetupType != "Custom") && (svSetupType != " ")) then
//如果用户没选择定制类型,此时要安装的组件是事先知道的,所以可以直接进行相应的系统配置与注册。
return 0;
endif;
szTitle = " ";
szMsg = " ";
nResult = SdComponentDialog2( szTitle, szMsg, svDir, " " );
//如果用户选择了定制类型,所以就必须检查用户的选择,再做相应配置与注册。
szComponent = "Manager Files";
nResult = ComponentGetData( MEDIA, szComponent, COMPONENT-FIELD_SELECTED,nzInfo, szInfo );
if nzInfo = 1 then
//这里是一段用户选择了"Manager Files"组件后的配置代码。
else
bManager = FALSE;
endif;
//依此类推,编写相应组件的处理代码。
return nResult;
end;
3.要保证对注册表的正确使用
大多数应用程序都在注册表中存储了一些信息,但这必须符合要求,这样既对管理有利,又不会导致注册表的过分庞大,从而影响系统性能。一般应用程序的信息放置位置应符合如下的要求:
[HKEY-CURRENT-USER\Software\(软件开发商名称)\(产品名称)\(信息类别)]或[HKEY-LOCAL-MACHINE\Software\(软件开发商名称)\(产品名称)\(版本号)\(信息类别)]。
只有符合这些要求,你才能制作出一个规范化的安装程序,它对你的应用软件“走向世界”极有帮助。
4.保证安装的安全性
在考虑安装的安全时,应了解你的应用软件的支持环境及动态链接库共享等问题。对于一个大型的应用系统,往往包含了多个模块,它们可能同时安装在同一台计算机上,而这台计算机上还可能已经或将要安装一些其它的应用系统,这就必须保证这套应用软件的安装与卸载不会影响其他系统的正常运行。具体做法,就是保证多个模块共同使用的文件必须共享,Windows会对这些文件进行引用计数,只有在这些文件引用计数为0时才能将它们卸载,系统的共享文件清单可在注册表中的[HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\SharedDLLs]目录下找到。
@Copyright 1999 版权所有,《软件世界》杂志社。All Right Reserved.