Фокус потерян для IE при использовании скрипта vb - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь запустить IE и передать путь calc.exe в качестве URL-адреса и загрузить его. Но после передачи URL фокус WshShell перемещается в другую точку. Ниже мой сценарий.

strWebSite = "file://C:/Windows/System32/calc.exe"
Set ie = GetObject ("", "internetexplorer.application")
ie.Navigate2 strWebSite
WScript.Sleep 500
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate("Internet Explorer")
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

1 Ответ

0 голосов
/ 05 декабря 2018

Решено: Активировать IE по идентификатору процесса

strWebSite = "file://C:/Windows/System32/calc.exe"
Set ie = GetObject ("", "internetexplorer.application")
ie.Navigate2 strWebSite
WScript.Sleep 500
Set WshShell = WScript.CreateObject("WScript.Shell")
Set Processes = GetObject("winmgmts:").InstancesOf("Win32_Process")

intProcessId = ""
For Each Process In Processes
  If StrComp(Process.Name, "iexplore.exe", vbTextCompare) = 0 Then
      intProcessId = Process.ProcessId
      Exit For
   End If
Next
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.AppActivate intProcessId 
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WScript.Sleep 3000
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...