[VB.NET]再びWebBrowserなんですが...

解決


JIN  2003-11-12 09:04:34  No: 80372

「WebBrowserでフレーム内のボタンをクリックするには?」や
「ブラウザの選択メニュー、決定ボタンをVBから操作するには?」の
過去ログを参考にしたのですが、行き詰まってしまいましたので
ご教授をお願いいたします。

WebBrowserで表示するフォームには以下のボタンが2つあり..
—————————————————————————————
<input type=submit name="Reload" value="再読込"> 
<input type=submit name="Logout" value="ログアウト">
—————————————————————————————

もし上記の様に「再読込」ボタンが存在するページだと、フォームデータを
定期的に送信し、「再読込」ボタンが存在しなければページの定期的に更新を行いたく..
——————————————————————————————————————————————————
Private Sub Timer_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer.Tick

Dim objForm As mshtml.HTMLFormElement = WebBrowser.Document

If objForm.getElementsByName("Reload").length = 0 Then
   '「再読込」ボタンがなければ現在のページを更新
   WebBrowser.CtlRefresh()
Else
   '「再読込」ボタンがあればフォームデータを送信
   objForm.Submit()  ←動作していない?
   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
End If
——————————————————————————————————————————————————
と、書いてみたのですが、objForm.Submit()が動作していない(?)様です。

過去ログの魔界の仮面弁士さんからの発言(2003/09/05(金) 02:19:53)で
objForm.Submit()だけではボタンは押されない。との事を書いていたのですが
具体的な処置が分からず、お力添えをお願いしたいと存じます。

ちなみにVB.NETです。


魔界の仮面弁士  2003-11-12 12:03:36  No: 80373

試してはいませんが———

Set Buttons = objForm.getElementsByName("Reload")
If Buttons.length = 0 Then
    'Reloadボタンが無い
Else
    '最初のReloadボタンを押す
    Buttons(0).click
End If

———という感じかな?


魔界の仮面弁士  2003-11-12 12:05:44  No: 80374

おっとと。.NETでしたか……とすると、こうかな? (確認していません)

Buttons = objForm.getElementsByName("Reload")
If Buttons.length = 0 Then
    'Reloadボタンが無い
Else
    '最初のReloadボタンを押す
    Buttons.Item(0).click()
End If


魔界の仮面弁士  2003-11-12 12:11:10  No: 80375

# 連続投稿失礼 m(_ _)m

> Dim objForm As mshtml.HTMLFormElement = WebBrowser.Document
普通は、「As MSHTML.HTMLDocument」を使う事になるかと。
(本来、HTMLFormElement は、<form>要素を割り当てる物です)


JIN  2003-11-12 13:03:04  No: 80376

魔界の仮面弁士さん、ありがとうございます。
まったく理解力が足らなくて申し訳ございませんでした。

ご教示いただいたものでうまく動きました。
本当にありがとうございます。
重ね重ねお礼申し上げます。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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