关于OCX控件注册问题

'使用Shell命令
Shell "regsvr32 /s """ & 文件全路径名 & """"

'有个API用来注册.ocx的
Declare Function RegComCtl32 Lib "C:/name.dll" _
Alias "DllRegisterServer" () As Long
Declare Function UnRegComCtl32 Lib "C:/name.dll" _
Alias "DllUnregisterServer" () As Long
Const ERROR_SUCCESS = &H0

'使用:
 call RegComCtl32
If RegComCtl32 = ERROR_SUCCESS Then
MsgBox "注册成功!"
Else
MsgBox "注册失败!"
End If
其中C:/name.dll是你的控件名(全路径),在此我仅仅以name.dll为例

TO: winehero(编程人生)  我有个问题,如何判断OCX控件已被注册过?如果以注册国的话就不需要再注册了。
——————————————————————————————————

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaxctrl/html/msdn_ctlreg.asp
或者是使用如下代码判断:

Option Explicit

public function IsRegistered(byval 控件名 as string) as boolean
'其中控件名:OCXLib.ControlName
dim oCheckup as object
' Check whether the activeX control ControlName is installed and registered.
Set oCheckup = CreateObject(控件名)
IsRegistered= (Err.Number = 0)
end function

Private Sub Command1_Click()
If IsRegistered("MSFlexGridLib.MSFlexGrid.1") Then
MsgBox "MSFlexgrid已注册"
Else
MsgBox "MSFlexgrid为注册"
End If

End Sub

阅读更多

关于OCX控件注册问题

10-25

各位,我用VB写了一个OCX控件并打包成 .CAB在网页上调用。Server是Linux系统,Client是Windows系统(这是一个JAVA项目,我们开发人员都在Windows系统开发)。CAB应该可以自动注册,但现在我发现有的机器可以下载成功并注册使用,有的不行(所有拦截和屏蔽的都已去了,并且已把Server的IP设为安全站点)不能注册的Client下载的控件即(*.CAB包)不全,原大小是3M左右,下载下来的才几十K。rnrn后来,我用我的机器做服务器,让别人访问我的系统,他们就能够下载成功,控件也可以使用。再让他们访问Server的系统该控件也可以正常使用了。我想了一下发现我的机器上已注册了这个控件,而Server是Linux没有注册控件的说法,而他们Client的系统也是Windows,而且没有注册我的控件,所以他们不能正常下载和使用。rnrn最后我把自己机器上的控件也注销以后发现连我自己也不能使用了!请问VB的高手如何解决这个问题?CAB应该能自动注册,可我的不行是什么原因?我想到在控件里写一个注册函数,在控件下载的时候自动进行客户端的注册,但苦于对VB的API函数不熟找了很多资料也没能找到,LoadLiberary, GetProcAddress,DllRegisterServer,CallWindowProc等内部API函数我不知道如何使用,MSDN也找过Microsoft网站上也找过,都是C++的例子(我很久没有使用C了,对C++不熟)。而且这个方法我也不确定一定能解决,因为我们有些Client就不能下载完全。如何把OCX控件加载读入内存,并自动注册的函数希望高手给个例子(我不知道上面要使用的函数在VB里是如何调用的)我一直做JAVA开发,VB的API我一点也不懂,我的OCX控件也没有使用API。请高手指点指点!!!非常急!如有实际例子或代码也可以发Email给我:Jimmy_0220@126.com

没有更多推荐了,返回首页