2010-11-20 12 views
6

WPF Webブラウザコントロールに基づいてカスタムWebブラウザを作成しようとしています。私はIWebBrowser2 comインタフェースを実装し、Navigating()NavigatedTo()LoadCompleted()イベントのハンドラを実装しています。 しかし、これらのイベントコールバックは最上位レベルのページに対して1回だけ起動されます。 ページにいくつかのJavaスクリプト、CSS、イメージファイルがあるとします。ブラウザはこれらのファイルをダウンロードするために別々のHTTP要求を発行します。個々のHTTPリクエストイベントを取得したいと考えています。 HTMLページの構造がdownloadBegin()イベントが発生したURLを取得するにはどうすればよいですか?

<html> 
    <body> 
    <img src="img1.bmp"/> 
    <imp src="img2.bmp"/> 
    </body> 
</html> 

ある場合たとえば、私はimg1.bmpとimg2.bmpのための個別のダウンロード時間をキャプチャしたいと思います。誰かがこれを達成する方法を提案できますか?

一方私は、イメージなどのこれらの要求に対してDWebBrowserEvents_Eventのdownloadbegin()イベントが発生することが判明しましたが、ハンドラがパラメータとしてvoidを取るので、ダウンロード元のURLを取得できません。

ダウンロードが完了したときに発生するdownloadCompleteというイベントがあるので、対応するURLを取得する方法はありますか。それで私はそのように達成することができます。

は、しかし、私は上記の画像レンダリング時間を解決する必要があります。私はひどく立ち往生している。私はこのクラスについて深い知識を持っていけないが、私は少し読書をした....

答えて

0

を助けてください。 はMDSNに彼らがdownloadbegin()イベントについて言う:http://msdn.microsoft.com/en-us/library/cc136556(v=vs.85).aspx

このイベントが発生しまもなく DWebBrowserEvents :: BeforeNavigateイベントやDWebBrowserEvents2 :: BeforeNavigate2イベントの後、ナビゲーションがキャンセルされない限り。コンテナが表示しなければならないアニメーションまたは「ビジー」表示は、このイベントに接続する必要があります。

と私はBeforeNavigateをチェックしたとき、私はそれは私がこれを見つけたそのPARAMATERS内のURL(MSDNしかしitllがURLを持っていることをその唯一の論理的ではない)http://blog.yezhucn.com/progie/222647_beforenavigate.htm

無効BeforeNavigate(
を持っていることを見ましたIDispatch * pDisp、 VARIANT * & URL、 VARIANT * &国旗、 VARIANT * & TargetFrameName、 VARIANT * & PostDataの、 VARIANT * &ヘッダ、 VARIANT_BOOL * & キャンセル)。

いつもBeforeNavigateイベントがある場合は、そのURLを使用して、DownloadBeginイベントに接続されている次のダウンロード完了イベントを確認できます。 私の推測では、ダウンロードごとにBeforeNavigateイベントを作成しますが、私は試みることができません(それをチェックするコードはありません)が、私は知っていませんが、私は助けてくれることを願っています。

+2

BeforeNavigateは1回だけ呼び出され、ページ用にダウンロードされるファイルごとに1回は呼び出されません。 –

関連する問題