2009/02/03(Tue) 13:55:51 編集(投稿者)
ご回答ありがとうございます。
その後、教えて頂いた情報を元にいろいろ試しましたが、うまく処理することができず・・・
> セッションクッキーなら、WebBrowser オブジェクトを一度破棄して再生成すれば良いような気がしますが…
下記のようにやろうとしたのですが、これだとボタンを押す度にという要件が満たせません。
私のやり方がおかしいと思うのですが・・・
webBrowser.Dispose()
Dim webbrowser2 As New WebBrowser
TabPage1.Controls.Add(webbrowser2)
webbrowser2.Dock = DockStyle.Fill
> Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
> System.EventArgs) Handles Button1.Click
> InternetSetCookie("http://server/asp/", "test", "foo")
> AxWebBrowser1.Navigate2("http://server/asp/test.asp")
> End Sub
> この例では "test=foo" というセッションクッキーをセットしていますが、 第3引数を String.Empty にしてやれば良いのでは。
上記のコードを参考に処理させてみたのですが、セッションクッキーを保持したままでした。
やむを得ず、不細工なやり方だと思いますが、下記のように処理させることにしました。
'セッションクッキー対策
If InStr(webBrowser.Document.Body.InnerText, "ログオン後のサイトのみに含まれる文字列") = 0 Then
webBrowser.Navigate(URL)
Exit Sub
End If
Me.webBrowser.Document.All.GetElementsByName("要素名")(0).InnerText = "ユーザー名"
Me.webBrowser.Document.All.GetElementsByName("要素名")(0).InnerText = "パスワード"
elements = webBrowser.Document.GetElementsByTagName("input")
For Each element As HtmlElement In elements
If element.GetAttribute("value") = "ログイン" Then
element.InvokeMember("click")
Exit For
End If
Next
> PS. お二方からマルチポストの指摘が入ってますね。
はい、普段、掲示板を参照するだけで、今回、初めて書き込ませて頂いたので、
マルチポストということを知らず、ご迷惑をお掛けしました。
いろいろとご協力ありがとうございました。