在程序运行时自动注册ActiveX控件

豆豆网   技术应用频道   2007年03月20日  【字号: 收藏本文

本文详细介绍在程序运行时自动注册ActiveX控件

  编写Delphi应用程序时,经常会遇到一些ActiveX控件[注:扩展名为OCX的控件或DLL的类型库],它们为应用程序的开发提供了简单的操作途径。然而,这些程序在发布的同时,面临ActiveX控件注册问题。

  解决途径:一、用安装程序制作打包文件,往往会给增加程序本身的大小,系统重装时,则必须重新安装它;二、用程序本身进行代码编写函数的形式处理它。

  使用方法分为两种:

  一、直接把可视化的ActiveX控件放到程序中;

  二、运行时根据需要实时建立。

  如果是直接使用,则应用程序在初始化的过程中会自动寻找、创建所需的ActiveX控件,如果控件没有注册,初始化程序会产生一个异常,捕捉并处理这个异常。

  在程序Form中加入一个新的方法:

unitUAutoRegActiveX;
interface
uses
 Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,ComObj;//加入ComObj单元
type
 TAutoRegActiveXFrm=class(TForm)
  procedureFormCreate(Sender:TObject);
 private
  {Privatedeclarations}
 public
  {Publicdeclarations}
 protected
  {Publicdeclarations}
  procedureCheckException(Sender:TObject;EAbort:Exception);
 end;
var
 AutoRegActiveXFrm:TAutoRegActiveXFrm;
implementation
{$R*.dfm}

  {-------------------------------------------------

  标准ActiveX控件中,有两个函数DLLRegisterServer、DLLUnRegisterServer可调用,其中函数用于注册控件,用于卸载控件。我们可用LoadLibrary装载DLL/OCX文件,用GetProcAddress获取DLLRegisterServer和DLLUnRegisterServer两个函数的指针,然后再直接运行这两个函数即可实现注册和卸载ActiveX控件的操作,从而代替Windows系统的RegSvr32.exe实现ActiveX控件的注册和卸载。

责编:豆豆技术应用

正在加载评论...