我想下載只有我的VB6程序中的HTML代碼。 Webbrowser
控制是好的,但它掛起,也有諸如需要禁用JavaScript中,PIC等,以得到公正的HTML問題只能檢索HTML的inet&webbrowser控件的替代方法?
的Inet
控制的比較好,但它是「越野車」
有沒有其他控件?
我想下載只有我的VB6程序中的HTML代碼。 Webbrowser
控制是好的,但它掛起,也有諸如需要禁用JavaScript中,PIC等,以得到公正的HTML問題只能檢索HTML的inet&webbrowser控件的替代方法?
的Inet
控制的比較好,但它是「越野車」
有沒有其他控件?
如果您只想下載頁面的HTML,您可以輕鬆使用Winsock
控件。
Private Sub Form_Load()
Winsock1.Connect "stackoverflow.com", 80
End Sub
Private Sub Winsock1_Close()
Winsock1.Close
End Sub
Private Sub Winsock1_Connect()
Winsock1.SendData "GET /questions/8624871/vb6-alternative-to-inet-webbrowser-control HTTP/1.1" & vbCrLf & "Host: stackoverflow.com" & vbCrLf & vbCrLf
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim s As String
Winsock1.GetData s, vbString
RichTextBox1.Text = RichTextBox1.Text & s
End Sub
Hrm,這是一個更好的解決方案。我應該真的讀過這個問題... +1 –
如何編輯下載多少百分比? –
@NokImchen標題中應該有'Content-Length:XXXXX',你可以比較'bytesTotal'的累加值。如果頭部中沒有「Content-Length」,那麼只有在連接關閉時才知道它已完成。 – GSerg
我的建議是在您的VB 6應用程序中託管WebKit.NET,就像您使用其他.NET控件一樣。
雖然它是一個.NET控件,這意味着它不能在VB 6中使用本機開箱即用,但可以使用.NET開發的控件與VB 6應用程序一起使用。 Microsoft提供Interop Forms Toolkit作爲兩種語言之間的互操作性機制。基本上,你將使用.NET語言之一(它不一定是VB.NET;你也可以使用C#)來創建一個包含你的UserControl
的ActiveX DLL,並將它註冊爲COM互操作。然後,您可以將此ActiveX控件添加到您的VB 6項目並掛鉤以處理它引發的事件。
您可以在如何操作here on CodeProject或here on CodeGuru上找到更完整的示例。
事實上,這種方法不會輕易實現。但是我懷疑這是你唯一的替代方案,因爲當VB 6很流行,並且沒有人再爲VB 6開發新的控件時,IE幾乎支配了瀏覽器市場。
回想起來,我發現我誤解了這個問題(在我的辯護中,它被編輯了; [原文](http://stackoverflow.com/revisions/8624871/1)不太清楚) 。其他一些解決方案對於這個特定的任務*更好。不過,我不會刪除我的答案,因爲對於其他打擊內置WebBrowser控件的其他限制的人可能會有所幫助。 –
是的,我很高興你沒有刪除你的解決方案,因爲它回答了我的問題。多年來,我發現很多答案都非常有用,謝謝。 – kjack
你不需要API調用,你不需要WinSock
,你不需要Inet
,你不需要WebKit的互操作。只需使用本機VB6代碼即可輕鬆完成。這裏有一個很好的帶有示例代碼的article by Karl Peterson。
這是很好的代碼,甚至可以在ASP,VBScript中使用。
Function GetHTMLCode(strURL) As String
Dim strReturn ' As String
Dim objHTTP ' As MSXML.XMLHTTPRequest
If Len(strURL)=0 Then EXIT FUNCTION
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.open "GET", strURL,False
objHTTP.send 'Get it.
strReturn =objHTTP.responseText
Set objHTTP = Nothing
GetHTMLCode = strReturn
End Function
現在這樣調用這個函數(總是以協議寫):
Msgbox GetHTMLCode("http://www.stackoverflow.com")
[下載文件 - VB6]的可能重複(http://stackoverflow.com/questions/1976152/download- file-vb6) – MarkJ