私のVB6プログラムでのHTMLコードをダウンロードしたいと思います。 Webbrowser
コントロールが良いですが、それがハングアップしても、それだけでHTMLHTMLのみを取得するinet&webbrowserコントロールの代わりに?
Inet
コントロールが優れているが、それは「バグだらけ」
他のコントロールはありますか?
私のVB6プログラムでのHTMLコードをダウンロードしたいと思います。 Webbrowser
コントロールが良いですが、それがハングアップしても、それだけでHTMLHTMLのみを取得する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 –
どのくらいの割合のページがダウンロードされてknw? –
@NokImchenヘッダーに 'Content-Length:XXXXX'があり、' bytesTotal'の累積値を比較できます。ヘッダーに 'Content-Length'がない場合は、接続が閉じられたときに完了したことだけがわかります。 – GSerg
他の.NETコントロールと同じように、VB6アプリケーションにWebKit.NETをホストすることをお勧めします。
これは.NETコントロールですが、これはVB6でネイティブですぐに動作しないことを意味します。VB6アプリケーションで.NETで開発されたコントロールを使用することは可能です。マイクロソフトはInterop Forms Toolkitを2つの言語間の相互運用性メカニズムとして提供しています。
基本的には、.NET言語(VB.NETである必要はなく、C#を使用することもできます)を使用してUserControl
を含むActiveX DLLを作成し、COM相互運用機能用に登録します。次に、このActiveXコントロールをVB 6プロジェクトに追加し、発生させたイベントを処理するために接続することができます。
これを行う方法の詳細については、here on CodeProjectまたはhere on CodeGuruのサンプルを参照してください。実際には、このアプローチは実装するのが簡単ではありません。 VB6が普及していて誰もVB6の新しいコントロールを開発していないとき、IEがブラウザ市場を支配していたことを考慮すると、バンドルされたWebBrowser
コントロールの唯一の選択肢だと思う。
これを振り返ると、私は質問を誤解しているのを見ています(私の防衛では、編集されました、[元の] http://stackoverflow.com/revisions/8624871/1) 。他の解決策のいくつかは、この特定のタスクに対してはるかに優れています。しかし、私は自分の答えを削除しません。組み込みWebBrowserコントロールの他の制限を打ち破った人には役に立ちます。 –
はい私は自分の解決策を削除してくれてうれしく思います。私はあなたの答えの多くが非常に数年後に役立つことを発見した、ありがとう。 – kjack
あなたはWebKitの相互運用性を必要としない、あなたはInet
を必要としない、あなたはWinSock
を必要としない、API呼び出しを必要としません。ネイティブの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-ファイルをvb6) – MarkJ