none
axWebbrowser上の自動ログイン RRS feed

  • 質問

  • 初心者です。よろしくお願いいたします。

    現在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でログイン後のページを表示

     

    自分で考えて試してみてもどうしてもうまくいかないのでよろしくご教授願います。

    2006年10月20日 0:56

すべての返信

  • 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のリテラルがなぜか消えている・・・

    2006年10月20日 2:15
    モデレータ
  • イベントが違っていただけでした。

    NavigateComplete2ではなくてDownloadCompleteを使えばできました。

    自己解決です。すみませんでした。

    2006年10月20日 2:17
  • こんにちは。

     

    少し前の投稿のようですが、このスレッドを見て、実際にYahooにログインする事はできたのですが、

    YahooIDまたはパスワードが正しくない時、ログインが失敗した、成功した場合は、ログインが成功した

    という情報を掴む良い方法は無いでしょうか?

     

    よろしくお願いいたします。

     

    2007年4月19日 0:32