有人总问为什么在使用webbrowser.document.links.length时候会有错误91这是因为你在webbrowser 还没有完整的下载页面,就使用的document 对象会出现对象未设置错误91解决办法就是 Private Sub Form_Load()WebBrowser1.Navigate2 (url) 你先给个默认的地址 上来就naviage2 就可以了
End Sub
End Sub
调试欢乐多
Dim URL_Index As Integer, CurrentURL As String
For URL_Index = 0 To List3.ListCount - 1
CurrentURL = List3.List(URL_Index)
If CurrentURL <> "" Then
WebBrowser1.Navigate2 CurrentURL, 4
While Not (WebBrowser1.ReadyState = READYSTATE_COMPLETE)
DoEvents
Wend
End If
Next URL_Index
End Sub
Private Sub cmdGo_Click()
Dim objLink As HTMLLinkElement
Dim objMSHTML As New MSHTML.HTMLDocument
Dim objDocument As MSHTML.HTMLDocument
lblStatus.Caption = "Gettting document via HTTP"
Set objDocument = objMSHTML.createDocumentFromUrl(txtURL.Text, vbNullString)
lblStatus.Caption = "Getting and parsing HTML document"
While objDocument.readyState <> "complete"
DoEvents
Wend
lblStatus.Caption = "Document completed"
txtSource.Text = objDocument.documentElement.outerHTML
DoEvents
lblTitle.Caption = "Title : " & objDocument.Title
DoEvents
lblStatus.Caption = "Extracting links"
For Each objLink In objDocument.links
lstLinks.AddItem objLink
lblStatus.Caption = "Extracted " & objLink
DoEvents
Next
lblStatus.Caption = "Done"
Beep
End Sub
Dim hw As LongPrivate Sub Command1_Click()
WebBrowser1.Navigate Text1.Text
WebBrowser1.Visible = True
End SubPrivate Sub Form_Load()
Dim h As Long, aClass As String, k As Long
h = GetWindow(hwnd, GW_CHILD)
aClass = Space$(128)
Do While h
k = GetClassName(h, aClass, 128)
If Left$(aClass, k) = "Shell Embedding" Then hw = h: Exit Do
h = GetWindow(h, GW_HWNDNEXT)
Loop WebBrowser1.Navigate ""
origWndProc = SetWindowLong(hw, GWL_WNDPROC, AddressOf AppWndProc)
End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
SetWindowLong hw, GWL_WNDPROC, origWndProc
End SubPrivate Sub mnuPrint_Click()
MsgBox "Print!"
End SubPrivate Sub mnuNavigate_Click()
Command1_Click
End SubPrivate Sub Text1_GotFocus()
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
End Sub
Option Explicit
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
Public Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Public Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = (-4)Public Const GW_HWNDNEXT = 2
Public Const GW_CHILD = 5
Public Const WM_MOUSEACTIVATE = &H21
Public Const WM_CONTEXTMENU = &H7B
Public Const WM_RBUTTONDOWN = &H204Public origWndProc As LongPublic Function AppWndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case Msg
Case WM_MOUSEACTIVATE
Dim C As Integer
Call CopyMemory(C, ByVal VarPtr(lParam) + 2, 2)
If C = WM_RBUTTONDOWN Then
Form1.PopupMenu Form1.mnuBrowser
SendKeys "{ESC}"
End If
Case WM_CONTEXTMENU
Form1.PopupMenu Form1.mnuBrowser
SendKeys "{ESC}"
End Select
AppWndProc = CallWindowProc(origWndProc, hwnd, Msg, wParam, lParam)
End Function