VB编程动态注册ActiveX控件

    在使用VB和其它一些Win9X下的编程软件,就要同ActiveX控件打交道,注册
和反注册控件是一件令人很头疼的事情。有时从网上下载了一个控件,但是在使用
时VB总是提示控件没有注册。又或者想删除一个控件却无法从注册中抹去。
    实际上,每一个ActiveX控件都有两个输出函数:DllRegisterServer和
DllUnRegisterServer。顾名思义,通过这两个函数就可以注册和反注册控件了,
下面通过程序说明如何通过编程来注册。
    首先在Form中加入两个CommandButton,不要改变它们的属性。然后在Form中
加入如下代码:
Private Declare Function RegComCtl32 Lib "ComCtl32.OCX" _
        Alias "DllRegisterServer" () As Long
Private Declare Function UnRegComCtl32 Lib "ComCtl32.OCX" _
        Alias "DllUnregisterServer" () As Long
Private Declare Function FormatMessage Lib "kernel32" _
        Alias "FormatMessageA" (ByVal dwFlags As Long, _
        lpSource As Any, ByVal dwMessageId As Long, _
        ByVal dwLanguageId As Long, ByVal lpBuffer _
        As String, ByVal nSize As Long, Arguments As _
        Long) As Long
Private Declare Function GetLastError Lib "kernel32" () As Long

Const ERROR_SUCCESS = &H0

Private Sub Command1_Click()
    Dim astr As String
   
    '反注册ComCtl32.Ocx
    If RegComCtl32 = ERROR_SUCCESS Then
        MsgBox "注册成功"
    Else
        astr = String$(256, 20)
        FormatMessage FORMAT_MESSAGE_FROM_SYSTEM Or _
            FORMAT_MESSAGE_IGNORE_INSERTS, 0&, GetLastError, _
            0&, astr, Len(astr), ByVal 0
        MsgBox astr
    End If
End Sub

Private Sub Command2_Click()
    Dim astr As String

    '反注册ComCtl32.Ocx   
    If UnRegComCtl32 = ERROR_SUCCESS Then
        MsgBox "反注册成功"
    Else
        astr = String$(256, 20)
        FormatMessage FORMAT_MESSAGE_FROM_SYSTEM Or _
            FORMAT_MESSAGE_IGNORE_INSERTS, 0&, GetLastError, _
            0&, astr, Len(astr), ByVal 0
        MsgBox astr
    End If
End Sub
    运行程序,点击Command2反注册ComCtl32.Ocx控件,在VB菜单中选 Project|components
或按Ctrl+T,在控件列表框中可以看到已经没有ComCtl32.Ocx了。再运行程序,点击Command1
重新注册控件。
    以上程序再VB5,WIN95下运行通过。

http://www.applevb.com/art/Control.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值