Webbrowserコントロール内に表示されるHTMLコンテンツ内で、クリックされたハイパーリンクやボタンを検出するには

解決


スー  2004-03-15 10:22:03  No: 112350

はじめまして。スーと申します。
フォームにWebBrowserコントロールを貼り付け、その中にHTMLコンテンツを表示するアプリケーションを作成しています。つまり、オリジナルのブラウザです。

通常IEなどのブラウザで任意のHTMLコンテンツにアクセスする場合、サーバに送信される情報として
------------------------
POST /index.html HTTP1.0
content-type: hoge
user-agent: fuga
content-length: 100

username=username&pass=pass
------------------------
のようになると思います。
私が実現したい機能としては、リンクやサブミットボタンをクリックしたときに、そのイベントを検出し送信されるべきデータを取得するというものです。
WebBrowser、inet、winsockコントロールなどでいろいろ調べてみましたが、自分で任意のリクエストを送るということはできても、HTMLコンテンツ内のリンクなどをクリックしたときに送信されるリクエストデータを取得する、といった方法を実現できるメソッドやイベントが見つけられませんでした。

上記の機能を実現させる方法がありましたら、ぜひご教授願えませんでしょうか。或いは、参考となるような図書、URLでも結構です。
よろしくお願いいたします。

環境:
WinXP HOME
VB6.0
IE6


魔界の仮面弁士  2004-03-15 18:23:46  No: 112351

フリーソフトの InetSpy のように、パーソナルプロキシとして
実装してみては如何でしょう。


スー  2004-03-16 07:33:04  No: 112352

かの有名な魔界の仮面弁士さんにお答えをいただけて光栄です。
自分としては、プロキシとしてではなく単体のアプリケーションとして善寿の機能を実装したいのです。
単に横取り丸やAchilles(のようなもの)を使用するのではなく、作成したWebアプリケーションを検査するために連続的に、異なるデータを送信したいのです。
実際にVBで作成されたそういったアプリケーションを目にしているので、作るのは可能だとは思うのですが。

たとえば、この掲示板であれば、「送信」をクリックしたときに、プログラマが意図したデータがサーバ側に送信されますが、スニファなどで送信されるリクエストをキャッチすると最初に書き込んだような形で送信されるのが確認できます。
それを、実際にサーバに送信する前にキャッチはできないのでしょうか。

実装としてはプロキシとしてのほうが簡単なのでしょうか。まずはプロキシで慣らしたほうが順序としてはよいということで、魔界の仮面弁士さんはご助言なさってくれたと思います。

このような(あるアクションでのリクエストに対して、連続的にいろんなデータを作成してサーバに送信する)アプリケーションを作成するに際して、参考となるようなものが何かありましたらぜひお教えいただきたいと思います。キーワードでも結構です。メソッドや、イベントなど。

よろしくお願いします。


スー  2004-03-26 10:07:16  No: 112353

解決しました。
BeforeNavigate2イベントを使用しました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加