IEへのキー入力をVBScriptで再現する。
6467 ワード
はじめに
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キー入力.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が閉じます。
参考記事
Author And Source
この問題について(IEへのキー入力をVBScriptで再現する。), 我々は、より多くの情報をここで見つけました https://qiita.com/nezuq/items/113d01ba407df5e45cb6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .