- 締切済み
VBから操作中のIEが行っているhttp通信内容
自動売買のシステムを開発しようと考えています。 VBからIEを操作しているとき、開いているページがリアルタイムで変化するレートや株価を含むような動的なホームページの場合、やり取りしているhttp通信の内容逐一を取得する方法はないでしょうか? 例えばこのページ(http://www.virtualfx.jp/)ではF12開発者ツールで調べるとflash内でhttp通信を行っているようでレスポンスの本文も読むことができます。 開発者ツールで見れるので、VBからIEオブジェクトを操作している場合でもできると思うのですが、調べてもよくわからなかったので、教えていただけないでしょうか? よろしくお願いします!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kumatti1
- ベストアンサー率60% (73/121)
(古いIEのみだけど)APIフックによるMSのツールはありますね。 STRACE http://www.microsoft.com/en-us/download/details.aspx?id=7643 Detours http://research.microsoft.com/en-us/projects/detours/
- __hide__
- ベストアンサー率66% (2/3)
ちょうどIE用のライブラリを書いていたところですので、ひとつのアプローチを紹介します。まず、最初におことわりしますが、誰も見たことに無いようなマジックを実現するには、それなりの種が必要です。また、必然的にその種は通常では実現できないような事を可能にしますので、コンピューターに対してある程度の知識が必要です。具体的にはC++でプログラミングできることが条件となります。 IInternetSessionは動作プロセス毎にカスタマイズされたプロトコルを登録するために存在し、登録したIInternetProtocolインターフェースを通じてブラウザが解釈する前のサーバーレスポンスを得ることができます。また、ブラウザ側が送信するデータを補足するためには、そこで使用される低水準APIの関数アドレスを偽装するAPIフックが必要になるかも知れません。 上記手法で重要なのはIEが実行しているプロセス内にプログラムが存在しなければならないことす。IEはWebBrowserコントロールとは異なり、独自のプロセス(しかも分散プロセス)を生成して動作しますから、その捕捉、及び侵入には高度なテクニックが必要です。 その手間を省く可能性があるのは、HTML中にOBJECT生成できるCOMDLLを用意することですが、この場合、自身が生成される前の通信については知りえないことになりますし、他のURLへナビゲートされた以降も無力化してしまいます。 「VBからIE」という表現からは「手軽に」という事を重要視されているのかも知れませんが、世の常として「手軽に可能な事」は誰しもが実現済みですから「目新しいことではない」になりますし、「誰も見たことが無い」を実現するにはそれなりの覚悟が必要になります。 現在開発中のIE用ライブラリは「IEのボット動作」を目的としていますので、ご質問者の「自動売買」という目的に合致する部分があるかも知れません。私事になりますが、そういったニーズがあるんだという事に気づかされた有意義な質問だと感じております。
お礼
ありがとうございます! 少し調べましたがやはり一筋縄ではいかないようですね。 APIフックによる方法とローカルプロキシを挟む方法も検討しつつ、もう少しいろいろと勉強します。 取り急ぎお礼申し上げます。
- pa_cotta
- ベストアンサー率43% (25/58)
いや、無理なんじゃないですかね…。 開発者ツールはあくまでもIE側のツールであって、VBはIEを起動してるだけでVB側のプログラムでhttpリクエストを 投げてるわけじゃないですよね。 ブラウザを使わずに直接リクエストを投げているのであれば、APIがあるのでそれを使えばいけると思います。
お礼
回答ありがとうございます。 flash内なのでソースが読めずに、そう簡単にもいかず、、 とりあえず回答ありがとうございます。
お礼
ありがとうございます。 参考になりました。