• ベストアンサー

vb.netを使ってWeb表示の自動化を図りたい

VB.netのWebBrowserを使ってWeb表示の自動化を図りたい。 プログラムの流れ概要 1.WebBrowser1.Navigate(New Uri("http://hoge")) で、Web表示 2.Web表示終了イベントを検知。検知するまでwait状態にする 3.次のWeb表示をWebBrowser1.Navigateで行う。 4.以降2 - 3を繰り返す。 これらを、出来れば同じsub()で行いたいと思います。 どのようにすれば、実現出来ますか。 ご教示下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • sean9
  • ベストアンサー率86% (26/30)
回答No.1

こんにちは。とりあえず1案のせます。 同じsub()でというところは解決できていません。読み込み完了のイベントを取得しています。 Dim _pages As New ArrayList Dim _index As New Integer が定義されているものとして、 Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted  GoNext() End Sub Private Sub GoNext()  If (index < _pages.Count) Then   WebBrowser1.Navigate(_pages(_index))   WebBrowser1.Refresh()   _index += 1  End If End Sub でいかがでしょうか

関連するQ&A

  • C# WEB表示について

    フォーム上にwebBrowser1があって下の通りに読み込み完了しましたと出ますが、 webBrowser1に表示されません。どうしたらいいですか? webBrowser1のプロバティでイベントを利用するのではなくコードで作りたいので、どなたか教えて頂けませんか? ボタン1はヤフーで、ボタン2とかも製作したいので。 ソース private void button1_Click(object sender, EventArgs e) { WebBrowser webBrowserForPrinting = new WebBrowser(); webBrowserForPrinting.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webview); webBrowserForPrinting.Url = new Uri("http://www.yahoo.co.jp/"); } private void webview(object sender,WebBrowserDocumentCompletedEventArgs e) { MessageBox.Show("Webページの読み込みが完了しました!!"); }

  • VB.NET2008を使用しています。

    VB.NET2008を使用しています。 ----- HTML ----- <input type="submit" name="Enter" value="ボタン"> ----- END ------ ----- 構成@VB ----- Form1 Button1 <- これをクリックしてWebBrowserのボタンを押したことにする WebBrowser1 ----- END ----- 上のようなボタン(HTMLのもの)を VB.NETのButton1を押すとWebBrowser1に表示されているWEBページのボタンを 押したようにしたいのですがどのようにすれば実現できますか? よろしくお願いします。

  • VB2005で「ファイルのダウンロード」のダイアログをVBで操作したい。

    初歩的な質問だとは思いますが、どうか回答お願いします。 VB2005でwebからファイルを自動でダウンロードするアプリ を作ろうとしています。 http://www.hogehoge.com/hogehoge.jpg からのダウンロードの仕方は Dim wc As New System.Net.WebClient() wc.DownloadFile("http://www.hogehoge.com/hogehoge.jpg", "c:\hogehoge.gif") でうまくいくのですが、 http://www.hoge.com/code=xxxx/download のようなURLの場合は上記の方法ではうまくいきませんでした。 そこで webbrowser1.navigate("http://www.hoge.com/code=xxxx/download ") を実行後「ファイルのオダウンロード」のダイアログが 表示されるので、VBからそのダイアログを操作して ファイルを保存しようと思いましたが、やり方が全然思いつきませんでした(T△T) どのようにすればよいかご教授ください。 よろしくお願いしますm(_ _)m

  • 正しいWebBrowserの使い方(ループ判定)

    VB2008を使っています。WebBrowserのコンポーネントを使って ホームページにGET形式でパラメータを渡して画面のBODY部分を読み取る ものを作っているのですが、サーバーのレスポンスにもよりますが 1分間に20回で5分(100回程度)連続アクセスをするのですが、 以下のルーチンの場合何か不安を感じまして、 ネットでこれを使えばOKというものが無くて 確実に読み取る方法が知りたくて質問いたしました。 やはり、2つ目のイベントを用いる方が安心でしょうか? 正しいWebBrowserの使い方(ループ判定)をご存知の方教えてください。 '***** WebBrowser1.ReadyState ***** WebBrowser1.Navigate(URL) Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Or WebBrowser1.IsBusy = True Application.DoEvents() Loop data = WebBrowser1.DocumentText '***** DocumentCompletedイベントまでループ ***** public wait_flag as Boolean wait_flag = True WebBrowser1.Navigate(URL) Do While (WebBrowser1.IsBusy = True) Or (wait_flag = True) Application.DoEvents() Loop data = WebBrowser1.DocumentText '---- イベント ----- Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted wait_flag = False End Sub

  • WebBrowserでOfficeファイル等を表示する事ができません・・・

    VB.net2008Expressを使用しています。 タイトルの通り、ExcelやWord、PDFファイル等をWebBrowserで表示したいと考えているのですが、行き詰りましたので質問させていただきます。 AxWebBrowser1.Navigate("c:\a.xlsx") このように記述し、c:\a.xlsxをAxWebBrowser1に表示させようと考えているのですが、「ファイルのダウンロード」ウィンドウが開いてしまい、表示ができません。 また、このウィンドウの「開く」ボタンを押しても、別枠でExcelが開き、肝心のAxWebBrowser1は"Webページへのナビゲーションは取り消されました"と表示されるだけでした。 また、AxWebBrowserコントロールではなく、WebBrowserコントロールで WebBrowser1.Url=New Uri("c:\a.xlsx") と試してみても結果は同じでした。 いろいろと調べてみても、これで表示されるはずなのですが、ダウンロードのウィンドウが邪魔して開いてくれません。 どのようなことが原因で表示がうまくいかないのでしょうか? また、解決策はあるのでしょうか・・? どうか皆さんの力をお借りしたいと思います。 よろしくお願いします

  • 【VB】Webページが読み込まれるのを待つには

    お世話になっています。バージョンはVB2005です。 フォームにはWebbrowserコントロールのみです。 WebbrowserコントロールにWebページが完全に表示された後で次のアクションを起こしたいのですが、「ページが読み込まれるのを待つ」の部分がわかりません。 おわかりの方、教えていただけないでしょうか。 よろしくお願いします。

  • webbrowserに表示させたページのリンクをクリックしたい。

    お世話になります。 vb2005でウェブブラウザにページを表示させて webbrowser1.navigate("http://yahoo.co.jp") 5番目のURLをクリックさせるのはどうすればいいでしょうか? 教えてください。お願いします。

  • 現在開いているHTMLのソースを表示したい

    vb6を使用しています。 インターネット関連では初心者です。 Private Sub Command1_Click() WebBrowser1.Navigate "http://oshiete.goo.ne.jp/" End Sub 上記内容で表示させたWebBrowser1のソースをそのままの状態で取得する方法を探しています。又、表示中のものを保存する方法でもかまいません。 IEで「表示→ソース」と同じものを取得したいです。 ご教授よろしくお願いします。

  • URLをテキストボックスに表示したい vb2008

    Private Sub 移動CB_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 移動CB.Click WebBrowser1.Url = New Uri(アドレスTextBox.Text) アドレスTextBox.Text = WebBrowser1.Url End Sub アドレスTextBoxにURLを手動で入力して、移動CBを押すと指定したサイトがWebBrowser1に表示されます。 そこでそのサイト内のURLをクリックしたときに新しいURLをアドレスTextBoxに表示させたいのですがうまくできません。 アドレスTextBox.Text = WebBrowser1.Urlがurlだとビルド失敗になってしまいます。 なので アドレスTextBox.Text = WebBrowser1.Text にしてみたのですがうまくできません。 どうすればいいのでしょうか?よろしくお願いします。

  • vb2005 webbrowserでリンクをクリックした後の表示待ちの方法

    VB2005を勉強中の者です。 WebBrowser1.Navigateを使ってwebページを開いた際は下記while文での表示待ちが機能するのですが、ページ表示後、さらにInvokeMemberを使って先のページにクリックで進んだ後では同一の表示待ち部分がうまく機能せずにそのまま次の処理へと進んでしまいいます。 どこに問題があるのか分からず困っております。どなたか助けていただけませんでしょうか? WebBrowser1.Navigate("https://yahoo.co.jp") '↓ここは機能します While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While WebBrowser1.Document.GetElementsByTagName("a").Item(15).InvokeMember("click") '↓これが機能しなくて困っています! While WebBrowser1.IsBusy Or WebBrowser1.ReadyState <> WebBrowserReadyState.Complete Application.DoEvents() End While '↓目的 TextBox1.Text = WebBrowser1.Document.Body.InnerText

専門家に質問してみよう