いつもお世話になります。
本来ブラウザでやる提携業務を自動化するために
xmlHTTPを利用しています。
対象となるHTMLページは
定型化されている部分と、
機能アップで日々仕様が更新されいるページとが混在しています。
そこで、固定化しているページはプログラム内XMLHTTPで自動処理をして
更新ページに対しては、プログラム内webBrowser
もしくはIEブラウザを立ち上げて対話処理をさせるというのが
一番手間がかかりません。
このとき、xmlhttpでの状態保持(セッション)を、webBrowserもしくは
外部IEとの間でやりとりすることは可能なのでしょうか。
何かよいアイデアがありましたら教えて下さい。
質問からはVBに関係してるとは思えませんが。。
これまでの処理の内容としては
accessのテーブルの値を処理してブラウザのinput項目に設定して
postする処理を行っています。
言語環境は、vb6、もしくはaccess VBAにて処理を作成しています。
処理途中、ファイルの送信があるので
Set xmlhttp = CreateObject("MSXML2.XMLHTTP.4.0")
xmlhttpオフジェクトを使っています。
相手先ページのポスト項目が代わってしまうことがあるので
完全に自動化できず。
ユーザーに、「この処理は、プログラムで自動、この処理はブラウザから」
と説明するよりは、プログラム内で例外が発生した場合は、
手動処理できる、webBrowserオブジェクト、もしくはセッション維持しつつ
IE立ち上げができないかと思いましてご相談いたしました。
POSTするプログラムと手動処理する
画面を同じブラウザ(IE、WebBroeser)
にすればいいと思います。
IEからWebBroeser
WebBroeserからIE
どちらもセッションは切れます。
contenteditをhtmlでできるようにしておく。
documentオブジェクトで変更する。
昨日書いて思い出して見にきたらひどいことを自分でも書いていたので
訂正。
コンテントエディットを使うと画面がぐちゃぐちゃになりますので、
後から設定できるようにしておきます。
参考
http://www.tohoho-web.com/html/attr/contenteditable.htm
ここでいうセッション?という点からすれば、documentオブジェクトで足りるかと。
ヤマ様、ご回答ありがとうございます。
伝わりにくい話で申し訳ないです。
例えば、
HTMLページにログインして、必要なinput text等を随時POSTして、ファイルPOSTすることをVB6により自動化する場合
xmlHTTPを使って一連の処理を自動化することができますが
生きたweb画面ではないので対話式で入力することができません
(xmlHTTP.responsetext単なる文字列)
webBrowserを使った場合、対話型で随時入力してPOSTできますが
ファイルPOSTができません
重要なのは、対象となるサイトにはログイン画面があるので
xmlHTTP経由でログインした場合、そのセッションをwebBrowser(逆方向も)
に引き継ぎたいということなのです。
>webBrowserを使った場合、対話型で随時入力してPOSTできますが
>ファイルPOSTができません
POSTできます。(2通り?あるようです)
navigate(2) の第二引数
また、webbrowserで任意のボタンなどにアクセスするには
documentコレクションの子要素から操作できます。
参考
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200504/05040039.txt
> webBrowserを使った場合、対話型で随時入力してPOSTできますが
> ファイルPOSTができません
ファイルPOST というと、<input type=file> のことでしょうか。
確かにそれは、プログラムからの制御が制限されていますね。
> (xmlHTTP.responsetext単なる文字列)
文字列以外だと、ストリーム形式や、バイナリ形式での受信も可能ですね。
(今回は関係無さそうですけれども)
> xmlHTTP経由でログインした場合、そのセッションをwebBrowser(逆方向も)
> に引き継ぎたいということなのです。
外部からだと難しいような気がします。もしかしたら、WebBrowser 内の
スクリプトから XMLHttp を使うようにすれば、もしかしたらセッションを
引き継がれるかも知れませんけれども。(未確認です)
ところで、そのセッションは、どのような形式で管理されているものですか?
URL 内にセッション情報が埋め込みタイプですか?
hidden パラメータにセッションステートが含まれるタイプですか?
揮発性クッキーを用いるタイプですか?
ActiveX 等のアドインを使って通信が行われるタイプですか?
それとも、もっと他の形式で管理されているものですか?
弁士様、ありがとうございます。
実はいつぞやもお世話になっております。
今回のケースは、セッションステートが含まれるタイプです。
ただ、揮発性クッキー(ありがとうございます、この言葉も勉強になりました)も含まれているようです。
URLパラメータとかhiddenセッションステートなら、な
んとか引き継げると思いますが、
揮発性クッキーの処理が厳しいのかなと思っております。
ツイート | ![]() |