IE上のIDとかパスワードとかを自動的に入力 | gizagizamaxのブログ
2009-11-22 16:26:10

IE上のIDとかパスワードとかを自動的に入力

テーマ:COM

サンプルとしてミクシーに自動的にログインするスクリプトを用意しました。

ファイル名は適当な名前.vbsにしてください。

EmailとPasswordの変数を変えてください。


Dim Email

Dim Password

Email = "mailaddress@dococa.ne.jp"

Password = "pass1234"

 

' ミクシー表示

Dim internet

set internet = CreateObject( "InternetExplorer.Application.1" )

internet.Visible = false

internet.Navigate2( "http://mixi.jp/" )

Wait

 

' アクティブにする

Dim objWshShell

Set objWshShell = WScript.CreateObject( "WScript.Shell" )

objWshShell.AppActivate internet.LocationName + " - Windows Internet Explorer"

internet.Visible = true

 

' ログイン

if IsLoginPage = false then

              Logout

              Wait

end if

Login

 

Set internet = Nothing

 

' 表示されるまで待つ

Sub Wait()

              while internet.Busy

                            WScript.Sleep(100)

              wend

End Sub

 

' ログイン後か初期画面かを調べる

Function IsLoginPage

              Dim allElements

              set allElements = internet.Document.all

              for i = 0 to allElements.length

              Do

                            ' タイトルを探す

                            Dim tmpElement

                            set tmpElement = allElements(i)

                            if typename(tmpElement) <> "HTMLTitleElement" then

                                          Exit Do

                            End If

 

                            if tmpElement.text = " ソーシャル・ネットワーキング サービス [mixi( ミクシィ )]" then

                                          IsLoginPage = true

                                          Exit Function

                            end if

              Loop until 1

              next

              IsLoginPage = false

              Exit Function

End Function

 

sub Login()

              ' メールアドレス、パスワードを入力

              Input "email" ,Email

              Input "password" ,Password

 

              ' ログインボタンを押す

              Dim elements

              set elements = internet.Document.all

              for i = 0 to elements.length

              Do

                            ' ログインボタンを探す

                            Dim tmpElement

                            set tmpElement = elements(i)

                            if typename(tmpElement) <> "HTMLInputElement" then

                                          Exit Do

                            End If

                            if tmpElement.alt = " ログイン " then

                                          tmpElement.click

                                          Exit for

                            end if

              Loop until 1

              next

End Sub

 

Sub Logout()

              Dim allElements

              set allElements = internet.Document.all

              for i = 0 to allElements.length

              Do

                            ' ログアウトを探す

                            Dim tmpElement

                            set tmpElement = allElements(i)

                            if tmpElement.tagName <> "A" then

                                          Exit Do

                            End If

 

                            if tmpElement.outerText = " ログアウト " then

                                          tmpElement.click

                                          Exit Sub

                            end if

              Loop until 1

              next

End Sub

 

Sub Input(name,str)

              Dim elements       'IHTMLElementCollection

              set elements = internet.Document.getElementsByName(name)

              Dim inputElement             'HTMLInputElement

              set inputElement = elements(0)

              inputElement.Value = str

End Sub