乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 54|回复: 2

[求助]请教如何用VB代码注册控件?

[复制链接]
cag

87

主题

265

帖子

10

银币

中流砥柱

Rank: 25

铜币
613
发表于 2005-5-14 10:21:00 | 显示全部楼层 |阅读模式
请教如何用VB代码注册控件?
回复

使用道具 举报

34

主题

372

帖子

7

银币

中流砥柱

Rank: 25

铜币
508
发表于 2005-5-14 15:57:00 | 显示全部楼层
我没有直接试过,但是你确实可以试试这个思路:
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下运行通过。
回复

使用道具 举报

cag

87

主题

265

帖子

10

银币

中流砥柱

Rank: 25

铜币
613
发表于 2005-5-14 16:37:00 | 显示全部楼层
谢版主,我试试
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-2 12:22 , Processed in 0.632915 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表