是这样子的,我现在做了一个项目,这个项目有二个DLL文件,怎么在程序启动时判断DLL文件是否在本机上注册,如果注册了的话,什么也不做,没有注册的话就自动注册。

解决方案 »

  1.   

    On Error GoTo aErr    Dim dllObj As Object, dllVal As String, regTry As Boolean
        Set dllObj = CreateObject("xxx.yyyy")    '你的类名
        dllval=dllObj.xxxx    '你的类过程/方法
        Set dllObj = Nothing
        
        Exit sub
        
    aErr:
        If Err.Number = 429 And Not regTry Then
            'dll错误且库存在,尝试注册它一次(只能一次,否则会死循环)
            If Dir("dll文件名") <> "" Then
                '带 /s 参数运行 regsvr32,不显示信息框
                Shell "Regsvr32 " & Chr(34) & "dll文件名" & Chr(34) & " /s", vbHide
                regTry = True
                Resume
            End If
        End If
        
        msgbox "对象创建失败"
      

  2.   

    同意楼上
    出错处理
    然后shell regsvr32即可