关于ACTIVEX控件(100分)

  • 主题发起人 主题发起人 flieben
  • 开始时间 开始时间
F

flieben

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]
代码:
我的程序里用到了ACTIVEX控件。我现在不知道怎么样打包和发布。
所以在别的机器上安装了程序后不能使用。
向各位大侠请教。希望能讲详细一些,因为我是新手,很多东西都没接触过,见凉!
 
用install shield打包。
将你的Activex控件添加到自动注册项里。
安装程序安装这个控件时,就会把这个控件自动注册了。
//
手动注册方法。
开始-》运行-》regsvr32 控件路径+控件名.
 
把相应的ocx文件打包进去并注册
 
方法一,用安装程序打包
二,在程序中判断是否注册,可以用检查注册表的方法,如果没有注册,用下面的方法注册
TRegisterAction = (raRegister, raUnRegister);
function RegisterOleFile(FileName: String;
Action: TRegisterAction): Boolean;
//注册 OLE/COM 的 Dll/Ocx 组件
implementation
function RegisterOleFile(FileName: String;
Action: TRegisterAction): Boolean;
type
TOleRegisterFunction = function(): HResult;
//注册或卸载函数的原型
var
hLibHandle: THandle;
//由LoadLibrary返回的DLL或OCX句柄
hFuncAddr: TFarProc;
//DLL或OCX中的函数句柄,由GetProcAddress返回
RegFunc: TOleRegisterFunction;
//注册或卸载函数指针
begin
Result:=False;
hLibHandle:=LoadLibrary(PChar(FileName));
//打开OLE/DCOM文件,返回的DLL或OCX句柄
try
if (hLibHandle>0) then
//DLL或OCX句柄正确
begin
//返回注册或卸载函数的指针
if Action=raRegister then
//返回注册函数的指针
hFuncAddr:=GetProcAddress(hLibHandle,PChar('DllRegisterServer'))
else
//返回卸载函数的指针
hFuncAddr:=GetProcAddress(hLibHandle,PChar('DllUnregisterServer'));
if (hFuncAddr<>Nil) then
//注册或卸载函数存在
begin
RegFunc:=TOleRegisterFunction(hFuncAddr);
//获取操作函数的指针
if RegFunc()>=0 then
//执行注册或卸载操作,返回值>=0表示执行成功
Result:=True;
end;
end;
finally
FreeLibrary(hLibHandle);
//关闭已打开的OLE/DCOM文件
end;
end;
 
我已经接受答案了!
谢谢!!!谢谢各位,特别是incd因为你的方法最简单,我能看懂。
不过也要感谢pihome你,我在去研究研究。
迷糊你讲的太笼统了,不过也谢谢你!
 
后退
顶部