程序运行时,一旦所使用的组建不存在或未注册,在new一个对象的时候就会不带提示自动退出,我如何检测所使用的对象是否存在?

解决方案 »

  1.   

    我是这样的,下面代码在加载VB窗口前执行,检查IE版本,检查各控件是否已装Sub CheckComponent()
    Dim strErr As String, strVer As String, IE As Object' 检查IE控件比较复杂,其它的较简单
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Navigate "about:blank"
    While TypeName(IE.document) = "Nothing" '等待IE控件创建完毕
        DoEvents
    Wend
    strVer = IE.document.parentWindow.Navigator.appVersion
    If InStr(1, strVer, "MSIE 6") = 0 And InStr(1, strVer, "MSIE 7") = 0 Then strErr = "请安装Internet Explorer 6.0 或更高版本": Set IE = Nothing: GoTo NoActiveX
    Set IE = Nothing' 检查其它控件
    On Error GoTo NoActiveX
        strErr = "请安装 ReadPlayer 或其播放控件"
        CreateObject "rmocx.RealPlayer G2 Control"    strErr = "请安装 Macromedia Flash 或其播放控件"
        CreateObject "ShockwaveFlash.ShockwaveFlash"    strErr = "请安装 Windows Media Player 或其播放控件"
        CreateObject "MediaPlayer.MediaPlayer.1"    strErr = "请安装 ActiveX OLE DB (ADODB)(安装Office2000后即有)"
        CreateObject "ADODB.Connection"    strErr = "请安装 Internet 传输控件"
        CreateObject "InetCtls.Inet"    Exit SubNoActiveX:
        If Err = 429 Then
            MsgBox strErr   '输出错误信息
            End  '结束程序
        Else
            Err.Raise Err.Number
        End If
    End Sub然后在Sub Main里面
    Sub Main()
       CheckComponet
       ' 执行其它检查过程和初始化设置
       Load mdiMain   '加载主窗口
    End Sub