tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルWebBrowserでconfirmによって表示された確認ボタンのクリック
記事No13137
投稿日: 2008/10/14(Tue) 18:59
投稿者まーさ
VB6.0 SP6 / WinXP / IE6 の環境で使用しています。

WebBrowserにて表示されているページのAタグボタンを押すと、confirmコマンドにて確認ウ
ィンドウが表示されるページがあるのですが、その表示されたウィンドウをVBによって自動
でウィンドウ内の「はい」ボタンを押したいと考えています。

実際にプログラムを組むと、Aタグのボタンまでは押せるのですが、確認画面が表示される
と、制御が実行中のプログラムを離れてしまい、「はい」ボタンを押せなくなってしまいま
す。

confirmによる確認画面が表示されたのを検知して、自動でボタンを押す何かよい方法はない
でしょうか。

ご教授よろしくお願いします。

[ツリー表示へ]
タイトルRe: WebBrowserでconfirmによって表示された確認ボタンのクリック
記事No13138
投稿日: 2008/10/15(Wed) 00:48
投稿者魔界の仮面弁士
> confirmによる確認画面が表示されたのを検知して、自動でボタンを押す何かよい方法はない
> でしょうか。

正攻法で行くならば、ActiveX コントロールのホスト側で、IDocHostShowUI を
Implements して、その ShowMessage メソッドを実装する事になります。

# VB2005 のサンプルならば、以前書いたけれども…。
# http://yaplog.jp/orator/archive/81


VB6 の場合、インターフェイスを定義する手段が提供されていないので、
タイプライブラリ等を準備するところから始めなければなりません。実装例については、
Eduardo Morcillo 氏の [Custom WebBrowser control] などが参考になるかと思います。
http://www.mvps.org/emorcillo/en/code/vb6/index.shtml

[ツリー表示へ]
タイトルRe^2: WebBrowserでconfirmによって表示された確認ボタンのクリック
記事No13142
投稿日: 2008/10/16(Thu) 00:57
投稿者まーさ
魔界の仮面弁士さま
ご指導ありがとうございます。

VB2005を利用すれば、簡単に出来るんですね。
VB6の方法は、自分にはやや難しいので、じっくり調べてみます。

とりあえず、キーストロークをシミュレートするプログラムを別に作り、確認画面が出る前にシミュレートプログラムにデータを渡して、Enterキーを一定時間後に押すように工夫してみました。これで「はい」ボタンだけなら押せるようになりました。

とりあえず動いてはいますが、誤動作の原因になりかねないので、タイプライブラリ等の準備をもう少し調べてみます。

ご指導ありがとうございました。

[ツリー表示へ]
タイトルRe^3: WebBrowserでconfirmによって表示された確認ボタンのクリック
記事No13143
投稿日: 2008/10/16(Thu) 07:17
投稿者花ちゃん
> とりあえず、キーストロークをシミュレートするプログラムを別に作り、確認画面が出る前にシミュレートプログラムにデータを渡して、Enterキーを一定時間後に押すように工夫してみました。これで「はい」ボタンだけなら押せるようになりました。

私は、下記のようにして使っています。(同様に別プログラムで)
Timer コントロールを使って、Window のハンドルを取得して
   hChildWindow = FindWindowEx(lnghwnd, 0&, vbNullString, "OK" 又は "キャンセル")
   '子ウインドウをクリックする
   retValue = SendMessage(hChildWindow, BM_CLICK, 0&, ByVal 0&)
その後、再度
   '確認ダイアログが表示されているか確認する
   lnghwnd = FindWindowEx(0&, 0&, vbNullString, "Windows Internet Explorer")
表示されていたら、再度実行する(指定回数リトライする)
等の一連のコードを実行すれば、誤動作は、殆ど起きないしキャンセルボタンも
クリックできます。
 

[ツリー表示へ]
タイトルRe^4: WebBrowserでconfirmによって表示された確認ボタンのクリック
記事No13168
投稿日: 2008/10/23(Thu) 17:25
投稿者まーさ
花ちゃん様

お礼が遅くなり、大変申し訳ありません。
昨日花ちゃんのアドバイスに従い、プログラムを組みなおしたところ、非常にスムーズにボタンを押せるようになりました。
大変感謝いたします。ありがとうございました。

[ツリー表示へ]