#はじめに
InternetExplorerへのキー入力(ex.Enter,Tab)をVBScriptで再現する方法が、実に面倒だったのでシェアします。
起動したIEのプロセスIDを取得し、それを使ってIEをアクティブにする。その上でSendkeysを使ってキー入力を再現する。
#コード
IEキー入力.vbs
'IEキー入力.vbs
'Copyright (c) 2014 nezuq
'This software is released under the MIT License.
'http://opensource.org/licenses/mit-license.php
'シェルを起動する
Dim wsh
Set wsh = WScript.CreateObject("WScript.Shell")
'IEを起動する
Dim ie
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
'ie.FullScreen = True
'IEをアクティブにする
Dim wLoc, wSvc, wEnu, wIns
Set wLoc = CreateObject("WbemScripting.SWbemLocator")
Set wSvc = wLoc.ConnectServer
Set wEnu = wSvc.InstancesOf("Win32_Process")
Dim pId
For Each wIns in wEnu
If Not IsEmpty(wIns.ProcessId) And wIns.Description = "iexplore.exe" Then
pId = wIns.ProcessId
End If
Next
Set wLoc = Nothing
Set wEnu = Nothing
Set wSvc = Nothing
While not wsh.AppActivate(pId)
Wscript.Sleep 100
Wend
'IEで指定URLを開く
ie.Navigate "https://secure.nicovideo.jp/secure/login_form"
Do While ie.Busy = True Or ie.readyState <> 4
Loop
'IEで要素に値を入れる
Dim elm
Set elm = ie.document.getElementById("mail")
elm.Value = "メールアドレス"
'IEでキー入力を再現する
Wscript.Sleep 1000
wsh.SendKeys "{tab}"
Wscript.Sleep 1000
wsh.SendKeys "password" '日本語不可
'5秒停止しIEを閉じる
WScript.Sleep 5 * 1000
ie.Quit
Set elm = Nothing
Set ie = Nothing
Set wsh = Nothing
※ニコニコ動画のログイン画面が自動で開き、入力欄に値が入ります。その後、ログインせずにIEが閉じます。