タイトル : Re^9: WebBrpwser内で自動ログインを 投稿日 : 2012/08/23(Thu) 16:43 投稿者 : Arms
> Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click > WebBrowser1.ScriptErrorsSuppressed = True > myUrl = New System.Uri("https://www.sonomanma.co.jp/login.php") > WebBrowser1.Url = myUrl > > End Sub > > Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, _ > ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) _ > Handles WebBrowser1.DocumentCompleted > If Not TypeName(sender) = "WebBrowser" Or e.Url <> myUrl Then > Exit Sub > End If > > With WebBrowser1 > If .Document.Body.InnerText.IndexOf("ログインに失敗しました。") >= 0 Then > Exit Sub > End If > .Document.GetElementById("textfield").SetAttribute("Value", "自ID") > .Document.GetElementById("textfield2").SetAttribute("Value", "自Pass") > ' .Document.Forms(1).InvokeMember("Submit") > .Document.GetElementsByTagName("input").Item(7).InvokeMember("Click") > '又は、 .Document.All.GetElementsByName("Submit").Item(0).InvokeMember("click") > ' "Submit" は、大文字・小文字が区別されますので注意 > End With > End Sub 上のコードで試したところやはり再度開こうとするとエラーが表示されます。 コード変更になるのか分りませんが、ランチャからボタンを押して別フォーム(今作成中の内容)を表示というような動作をしています。一度目ボタンを押すとちゃんと自動ログインをされるのですが、二度目ボタンを押すとログインエラーと共にDocument.GetElementById("textfield").SetAttribute("Value", "自ID")の部分で「オブジェクト参照がオブジェクト インスタンスに設定されていません。」と表示されます。 ログインしてるかしてないかの判断(if文)できればいいのですが、アドバイスをよろしくお願いします。 |