WebBrowserで最新のページを表示したい
- 題名: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/11/04 23:05:37
- ID: 31104
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/11/19 23:36:05
- ID: 31127
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: WebBrowserで最新のページを表示したい
- 著者: ヴァン
- 日時: 2012/11/20 9:56:25
- ID: 31129
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: WebBrowserで最新のページを表示したい
- 著者: ズッカ
- 日時: 2012/11/20 12:19:58
- ID: 31130
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/11/20 22:55:01
- ID: 31131
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/11/25 19:14:24
- ID: 31139
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: WebBrowserで最新のページを表示したい
- 著者: ヴァン
- 日時: 2012/11/26 9:30:35
- ID: 31140
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: WebBrowserで最新のページを表示したい
- 著者: ズッカ
- 日時: 2012/11/26 15:22:30
- ID: 31141
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/12/15 17:41:05
- ID: 31181
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[9]: WebBrowserで最新のページを表示したい
- 著者: 4649
- 日時: 2012/12/15 18:08:48
- ID: 31182
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[10]: WebBrowserで最新のページを表示したい
- 著者: masa
- 日時: 2012/12/16 21:49:45
- ID: 31183
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
お久しぶりです。 masaと申します。
現在WebBrowserコントロールを使用しウェブブラウザを作っているのですが、
一部のサイトにて、IEでは更新されるのに自作ブラウザでは更新されないサイトが出てきました。
説明するよりも見ていただいた方が早いと思いますので、状態を再現するコードを書いてみました。geocitiesのアカウントを持っている方がいらっしゃったら試していただけると幸いです。
(実際に作るコードとは関係ありません)
WebClient wc = new WebClient();
// user、passは環境に合わせて置き換えてください。
string user = "user";
string pass = "pass";
wc.Credentials = new NetworkCredential(user, pass);
WebBrowser wb = new WebBrowser();
CDO.MessageClass msg = new CDO.MessageClass();
// メインルーチン
while (true)
{
// mhtで保存する
msg.CreateMHTMLBody(Console.ReadLine(), CDO.CdoMHTMLFlags.cdoSuppressNone, "", "");
ADODB.Stream st = msg.GetStream();
st.SaveToFile("C:\\test.mht", ADODB.SaveOptionsEnum.adSaveCreateOverWrite);
st.Close();
// アップロードする(geocities)
wc.UploadFile("ftp://ftp.geocities.jp/test.mht", "C:\\test.mht");
// ブラウザでページを開く
wb.Navigate("http://www.geocities.jp/" + user + "/test.mht");
// ページが表示されるまで待つ
while (wb.IsBusy || wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
// 現在表示してるページのタイトルを表示
Console.WriteLine("Title: " + wb.DocumentTitle);
}
・Microsoft CDO for Windows 2000 Library
・Microsoft ActiveX Data Objects 2.8 Library
・System.Windows.Forms
を参照に追加しています。
実行し、「http://www.yahoo.co.jp/」と打ち込むと「Title: Yahoo! JAPAN」と出てきてほしいのに「Title: 」と返ってきました。
次に「http://www.google.co.jp/」と打ち込むと「Title: Google」と出てほしいのに「Title: Yahoo! JAPAN」と返ってきて、それ以降どのURLを指定しても「Title: Yahoo! JAPAN」が返ってきます…
上手くアップロードできていないのかと思い、ブラウザでアップロードした先を表示すると、ちゃんと最後に打ち込んだサイトのmhtが表示されます。
恐らくキャッシュが使用されているためにこのようなことが起きてしまうのだと思いますが、どうしたら最新のページを開けるでしょうか?
wb.Refresh()やwb.Refresh(WebBrowserRefreshOption.Completely)を行っても効果はありませんでした。
どなたか分かる方がいらっしゃいましたら回答お願いします。