Dim WithEvents WebBrowser1 As SHDocVwCtl.WebBrowser
Dim dWinFolder As New ShellWindows
Dim objIE As Object
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As 
String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Dim objIehwnd As Long
Const JgDz = "*******" '登陆地址Dim r As LongPrivate Sub CommandButton1_Click() '登录
    Set WebBrowser1 = Nothing
    r = ShellExecute(0, "open", Jgdz, 0, 0, 3)
    For r = 1 To 10000
        For Each objIE In dWinFolder
            If objIE.LocationURL = Jgdz Then                Set WebBrowser1 = objIE      ????vb中提示:错误,类型不匹配                WebBrowser1.Silent = True
                objIehwnd = objIE.hwnd
                CommandButton1.Enabled = False
                Exit Sub
            End If
        Next
    Next
End Sub不知还有其它错误没有,请赐教,谢谢!!!

解决方案 »

  1.   

    改成这样好像就可以了?
    Dim WithEvents WebBrowser1 As SHDocVwCtl.WebBrowser_V1
      

  2.   

    谢谢!!!改成Dim WithEvents WebBrowser1 As SHDocVwCtl.WebBrowser_V1,没有错误提示。
    但WebBrowser1没有DocumentComplete事件,请赐教。
      

  3.   

    谢谢指导,没有DocumentComplete事件的。
      

  4.   

    你的代码中,这两个对象的“类”本来就是不同的。
    我仔细看了一下WebBrowser_V1类的属性,它跟WebBrowser类对象之间好像也没有“对象互换”的属性或方法。
    不知道你能不能用WebBrowser_V1的 DownloadComplete事件 来替代处理?
      

  5.   

    试试用另外的名称错开来。 比如:
    Dim WithEvents web1 As SHDocVwCtl.WebBrowser_V1另外,你这片代码是要做自动登录吗?如果是的话可以直接操作对象objIE
      

  6.   

    首先感谢sysdzw的指导。
    VBA中的源代码:
    Dim WithEvents WebBrowser1 As WebBrowser 
    Dim dWinFolder As New ShellWindows
    Dim objIE As Object
    Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As 
    String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
    Dim objIehwnd As Long
    Const JgDz = "*******" '登陆地址Dim r As LongPrivate Sub Command1_Click() '登录
        Set WebBrowser1 = Nothing
        r = ShellExecute(0, "open", Jgdz, 0, 0, 3)
        For r = 1 To 10000
            For Each objIE In dWinFolder
                If objIE.LocationURL = Jgdz Then
                   Set WebBrowser1 = objIE
                    WebBrowser1.Silent = True
                    objIehwnd = objIE.hwnd
                    Command1.Enabled = False
                    Exit Sub
                End If
            Next
        Next
    End Sub问题:
    想改在VB6.0,IE6下运行,提示:
    1.Dim WithEvents WebBrowser1 As WebBrowser
     Set WebBrowser1 = objIE????? vb6中提示:错误,类型不匹配          
    2. Dim WithEvents WebBrowser1 As WebBrowser_V1
       Set WebBrowser1 = objIE没有错误提示,但没有DocumentComplete事件 
    使用其它事件有错误,最好使用DocumentComplete事件,谢谢!!!
      

  7.   

    Dim WithEvents web1 As SHDocVwCtl.WebBrowser_V1
    Set WebBrowser1 = objIE没有错误提示,没有DocumentComplete事件
    使用其它事件有错误,最好使用DocumentComplete事件,谢谢!!!
      

  8.   

    WebBrowser_V1是早期的版本3.0以前的,所以他支持的参数很有限.
    不支持
    DocumentComplete不太了解你的操作,可以尝试用winsock或者XMLHTTP实现Post与Get来实现登陆操作.