1

私のプログラムは、プログラムの実行時にアクセスされるすべてのWebサイトを監視する必要があります。

私はそれを行うためのいくつかの方法を見つけました、そして私はそれが「最良」である方法を疑問に思っています(つまり、最良とは、実装が最も簡単で、最高のパフォーマンスを提供することです)。このプログラムは、新しいバージョンのWindowsのみを対象としています。x86とx64の両方で動作するはずです。監視できるようにする必要があるブラウザは、IE、FireFox、Chrome、Operaです。

各ブラウザの履歴ファイルを見ることができましたが、これはかなり悪い方法です(ブラウザの新しいバージョンでは、コードが機能しなくなる可能性があります)。

すべてのウィンドウ(HWND)をチェックして、そのブラウザーがWebサイトにアクセスするかどうかを確認できます...しかし、これは本当に良い方法ですか?もしそうなら、私はそれをどのように行うのですか?リンクまたはコードスニペットに感謝します:)

パケットスニファを使用することもできますが、URLが必要な場合は、それはちょっとやり過ぎでしょう...

プロキシはブラウジングを遅くするので(少なくともそう思います)、良い解決策ではありません(私は正しいですか?)...

それとも私はそれをもっと良い他の方法で行うことができますか?

4

1 に答える 1

2

複数のブラウザを処理する必要があるため、プロキシソリューションは、それを実行するための最も堅牢な方法になります。適切に設計されていれば、それほど多くのオーバーヘッドが発生することはありません。パケットスニッフィングは非常に複雑です。

現在必要なブラウザの現在のバージョンをサポートする特定のブラウザをハックできる可能性がありますが、「ハック」という言葉に注意し、「メンテナンスの悪夢」をミックスに追加してください。

また、タグを再考することもできます-qeustionは.net、vc ++、vstudioとはあまり関係がありません-ただし、win32apiが必要になる可能性があります:)

于 2012-07-18T17:47:19.877 に答える