| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1009 人关注过本帖, 1 人收藏
标题:想问个OCX注册的问题
只看楼主 加入收藏
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
结帖率:97.66%
收藏(1)
 问题点数:0 回复次数:3 
想问个OCX注册的问题
若说我要使用自制或是使用下载或不是VB内建的OCX时~通常都要注册~那我不能使用程序自动帮我做这件事吗?我尝试写了一些代码~但是好像缺了什么~当我到别的电脑开启工程或执行档时~系统依旧会出现错误?
我是先從App.Path下複製一份到系統內再用Shell regsvr32 註冊~

介面
程序代码:
Private Sub Form_Initialize()
Dim SystemPath As String, OcxPath As String, a As Long
    SystemPath = GetSysPath & "\EFMTIcn.ocx"
    OcxPath = App.Path & "\EFMTIcn.ocx"
    If IsFileExist(OcxPath) = True Or IsFileExist(SystemPath) = True Then
        If IsFileExist(OcxPath) = True Then
            FileCopy OcxPath, SystemPath
            a = Shell("regsvr32 " & SystemPath & " /s", vbHide)
        ElseIf IsFileExist(SystemPath) = True Then
            a = Shell("regsvr32 " & SystemPath & " /s", vbHide)
        End If
    End If
End Sub


模块
程序代码:
Public Declare Function GetSystemDirectory Lib "kernel32" Alias "GetSystemDirectoryA" (ByVal lpbuffer As String, ByVal nSize As Long) As Long
Const MAX_PATH = 260

Public Function IsFileExist(strFileName As String) As Boolean
Dim varFSO As Variant
    Set varFSO = CreateObject("Scripting.FileSystemObject")
    IsFileExist = varFSO.FileExists(strFileName)
    Set varFSO = Nothing
End Function

Public Function GetSysPath() As String
Dim Buffer As String
    Buffer = Space(MAX_PATH)
    If GetSystemDirectory(Buffer, Len(Buffer)) <> 0 Then
        GetSysPath = Mid(Trim(Buffer), 1, Len(Trim(Buffer)) - 1)
    End If
End Function


不知道我是缺了哪个步骤?
搜索更多相关主题的帖子: 注册 
2011-04-19 22:37
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
2.利用REGSVR32工具注册

  在VB安装盘的Tools\Regutils目录下有三个用于注册OLE控件和DLL的工具,即REGSVR32.EXE、 REGOCX32.EXE和REGIT.EXE。

  REGSVR32.EXE用于注册OLE Server,包括OLE控件和DLL;REGOCX32.EXE专用于注册OCX控件;REGIT.EXE用于一次注册多个OLE Server。以REGSVR32.EXE为例,为注册MyCtrl?ocx,只须在命令行输入REGSVR32 MyCtrl.ocx即可。而输入REGSVR32 /u MyCtrl.ocx则可以注销该控件。与方法1类似,有些控件不能直接用该法注册。


才看到~原来是指令打错regsvr32要改成regocx32~不过也有权限问题~可参考CSDN的论坛中有讨论到关于提升权限的方法~

不要選我當版主
2011-04-19 23:17
wube
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:23
帖 子:1820
专家分:3681
注 册:2011-3-24
收藏
得分:0 
忘了附注~引用自
http://www.

不要選我當版主
2011-04-19 23:19
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:0 
VB中定制DllRegisterServer、DllUnregisterServer
搜索下就不用Shell了
2011-04-19 23:38
快速回复:想问个OCX注册的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016482 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved