.OCX能自动注册自己吗?(50分)

W

Wysywyg

Unregistered / Unconfirmed
GUEST, unregistred user!
忘了是哪一个问题中,有人说有的Activex控件能自动注册,
这是怎么回事?
 
Delphi的ActiveX类库能自已注册自己(运行一次)。
  ActiveX控件好像是不能自己注册自已的,我在用VB时一向是手动注册
如果有人说可以注册一定是一个ActiveX 安装包吧。 
 
每个ActiveX都会export一个函数叫DllRegisterServer, 当你用
regsvr32.exe注册它时实际上就是调用这个函数,给你一个VB的例子:

'函数声明
Public Declare Function RegMyServerObject Lib "C:/windows/system/comdlg32.ocx" Alias "DllRegisterServer" () As Long

Sub Form1_Load()
RegMyServerObject
End Sub

现在comdlg32.ocx被注册了.
同理,如果要反注册,只要用"DllUnregisterServer"代替"DllRegisterServer"
就可以了.
 
cakk厉害呀。
实际上注册的方法很多:
1、用tregsvr.exe//shipped with delphi
2、用regsrvr.exe//name not sure, but with windows
3、调用内部的 DllRegisterServer //用其它程序哦
4、如果是DELPHI写的EXE,可以简单的运行之。
5、DELPHI IDE 中 RUN-REGISTER ACTIVEX SERVER
 
function registerACTIVEX(ACTXfilename:string):boolean;
var systempath:string;
Psystemchar:array[0..79] of char;
LibHandle:integer;
RegProc: TRegProc;
begin
GetSystemDirectory(Psystemchar,80);
systempath:=strpas(Psystemchar);
if copy(systempath,length(systempath),1)<>'/' then
systempath:=systempath+'/';
if not FileExists(systempath+ACTXfilename) then
begin
registerACTIVEX:=False;
exit;
end;
LibHandle := LoadLibrary(pchar(systempath+ACTXfilename));
try
@RegProc := GetProcAddress(LibHandle, 'DllRegisterServer');
if RegProc<>0 then
registerACTIVEX:=False
else
registerACTIVEX:=true;
finally
FreeLibrary(LibHandle);
end;
end;
 
谢谢各位!
我现在想要做的是将一个.OCX从网页中下载到
另一台机器上,好像这是不用人工注册的,但怎么把.OCX
的附属文件,比如一些初始化数据文件随它一起Down到
本地呢?那个服务器可是没装Delphi,没法用WebDeploy的.
 
一般OCX是打包成CAB放在网上的,里面包含了所有的从属文件.
 
多人接受答案了。
 
顶部