質問者
axWebbrowser上の自動ログイン

質問
-
初心者です。よろしくお願いいたします。
現在VS2005、C#、axWebbrowserを使用してWindowsアプリケーションを作成しております。自動ログインでhttp://www.microsoft.com/japan/msdn/community/gdn/ShowPost-18348.htm を参照しながら作ろうと思っているのですが、
SHDocVw.InternetExplorer IE = new SHDocVw.InternetExplorer();
IE.Visible = true;
object Dummy = System.Type.Missing;
IE.Navigate("https://login.yahoo.co.jp/config/login?.src=www&.v=0&.u=7brp2jl0o60ss&.last=&promo=&.intl=jp&.bypass=&.partner=&.protoctl=&pkg=&stepid=&.done=http%3a//www.yahoo.co.jp", Dummy, Dummy, Dummy, Dummy)上記だと現在のフォームから新しくIEを起動して自動ログインする形になりますが、新しく画面を出さずに現在のaxWebbrowser上で自動ログインするにはどうしたらいいのでしょうか。流れとして考えているのは
1.例えばログイン前のhttp//www.abc.ne.jpというページをWindowsアプリケーション上のaxWebbrowserで表示
2.ページが完全に読み込まれた状態(イベント NavigateComplete2?)でIDとパスワードが自動入力されsubmit
3.Windowsアプリケーション上のaxWebbrowserでログイン後のページを表示
自分で考えて試してみてもどうしてもうまくいかないのでよろしくご教授願います。
すべての返信
-
axWebbrowserじゃなくて、WebBrowserコントロールがお勧めです。(.NET 2.0ですよね?)
以下はyahooに自動ログインする例です。private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{if (e.Url.AbsoluteUri == https://login.yahoo.co.jp/config/login?.src=www&.done=http://www.yahoo.co.jp)
{
webBrowser1.Document.All.GetElementsByName("login")[0].InnerText = "hoge";
webBrowser1.Document.All.GetElementsByName("passwd")[0].InnerText = "fuga";
webBrowser1.Document.Forms[0].InvokeMember("submit");
}
}
#あれっ? ↑でurlのリテラルがなぜか消えている・・・