はじめまして、ゆっきぃと申します。
WebBrowserコントロールで、Htmlソースをゲットしていろいろなことができることがわかり、昨日から色々試していました。
Yahooメールのログインを自動的に行わせて、メールをチェックするようなEXEを作成してみようと思い、作成していたところ
UserID、パスワードのINPUTに値を入れることはできたのですが
ログインのボタンを自動的に押させることができませんでした。
どのように制御したら、自動的に処理させることができるのでしょうか?
どなたかご教授ください。お願いいたします。
NavigateでログインするcigにUserID、パスワードを渡せば入れるはず
私も関連するような質問入れちゃったのですが
参考になるようなサイトとかありますかね
レスありがとうございます。
関連サイトは探してもなかなか見つからないのですが…。
たとえばYahooなんかの場合ですと、Formタグの中のInputタグのNameを調べて
http://〜login?login=*****&passwd=****
と、Navigateで行けばできるようです。
でも、これだとFormのボタンを押したことにはならずにあまりよろしくないような気がします。
何かうまい方法は無いものですかねぇ…。
これではどうでしょうか?
Private Sub Command1_Click()
Dim IE As Object
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Navigate ("http://mail.yahoo.co.jp/")
DoEvents
Do While .Busy = True
DoEvents
Loop
.Visible = True
Do While .Document.ReadyState <> "complete"
DoEvents
Loop
.Document.Forms(0).Elements("login").Value = CVar("ユーザID")
.Document.Forms(0).Elements("passwd").Value = CVar("パスワード")
.Document.Forms(0).Elements(".persistent").Click
.Document.Forms(0).Elements(16).Click
End With
Set IE = Nothing
End Sub
>VBレスキュー(花ちゃん)さん
レスありがとうございます。
CreateObjectで、IEのオブジェクトを作成した場合
IEが起動してしまいました。
Form内に、WebBrowserコントロールを埋め込んでFormをLoadするだけで
VisibleをFalseにしておくと、フォームも起動せず、メモリ上(?)で
処理を実施することができるようです。
ちなみに私は、こんな感じで書いてみました。
'ログイン
Private Sub Command1_Click()
Dim strName As String
Dim strPass As String
Dim strJmpUrl As String
strJmpUrl = "http://www.yahoo.co.jp/login?"
strName = txtUserName 'フォーム内に作ったTextBox
strPass = txtPassWord 'フォーム内に作ったTextBox
strJmpUrl = strJmpUrl & "login=" & strName & _
"&passwd=" & strPass
With WB1
.Navigate2 strJmpUrl
Do While .ReadyState <> READYSTATE_COMPLETE
DoEvents
Loop
End With
End Sub
これだと、確かにログインはできるのですが
その後、メールチェックなどを同じEXE内で行おうとしても、ログインされて
いないとみなされてしまいます…。
この処理を実行してから、IEを開いてYahooを見ると
ログインしている状態になっているのに…。なんでなんですかねぇ…。
ツイート | ![]() |