DOBON.NET DOBON.NETプログラミング掲示板過去ログ

VB .NET からの単一IE画面起動

環境/言語:[WindowsXP、VB.NET VisualBasic2005ExpressEdition]
分類:[.NET]

現在VB.NETのWinアプリで、
指定された複数のURLを一定時間ごとにIEで順に表示していく
スライドショーのような処理を実現したいと考えています。

複数URL情報を保持したListをループでまわし、
その中で毎回

System.Diagnostics.Process.Start("IExplore", openURL)
System.Threading.Thread.Sleep(10000)

とやっているのですが、
毎回ProcessスタートでIEが新規に起動されてしまいます。
単独のIEで画面遷移のようにページが切り替えたいのですが、
うまくいきません。
以下のようにWebBrowserコントロールで遷移する方法も試してみました。

Me.WebBrowser1.Navigate(openURL)
System.Threading.Thread.Sleep(10000)

が、この場合だとSleep処理のせいか
うまくWebBrowserコントロールが更新されませんでした。

単独IEで順々に起動する方法、あるいは
WebBrowserコントロールで一定時間ごとに表示を変更する方法で
良いやり方があれば御教授ください。

よろしくお願いいたします。
一定時間ごとに処理を行う場合は、タイマを使いましょう。
Timer クラスは 3 つほどありますが、@IT とかにそれぞれの特徴と使い方の記事があります。
> Hongliangさん

ご返信ありがとうございます。

> 一定時間ごとに処理を行う場合は、タイマを使いましょう。
> Timer クラスは 3 つほどありますが、@IT とかにそれぞれの特徴と使い方の記事があります。

アドバイスを参考にTimerクラスとWebBrowserで無事に実現できました。
ありがとうございます。

ただ、理想的な形は単独IE画面でスライドショー表示する方法なので、
もしそちらの解決策がありましたら
情報いただけたらと思います。
こちらはVBのコードの問題ではなくて
実行PC環境の問題なのかなという気もしてきました。
そちらは、InternetExlorer.Application のオブジェクトを使えば良いでしょう。
世に出回ってる VBS や VBA のサンプルコードがほぼそのまま使えるはずです。
>System.Diagnostics.Process.Start("IExplore", openURL)
では,起動した後にIEをコントロールできません。

IEを起動し,コントロールするには,次のようなコードになると思います。
(Microsoft Internet Controlsを参照設定します。)

Imports SHDocVw
Imports System.Runtime.InteropServices

Public Class Form1

    Dim ie As New InternetExplorer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ie.Visible = True
        ie.Navigate("http://www.yahoo.co.jp")
    End Sub

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        ie.Quit()
        Marshal.ReleaseComObject(ie)
        ie = Nothing
    End Sub

End Class
> Hongliangさん

情報ありがとうございます。
InternetExlorer.Application のオブジェクトですか。
これから調べてみます。

> YASさん

サンプルコード感謝です。
こちらも参考にさせていただき早速試してみます。
ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板