Windows сценарий оболочки не может сделать видимым существующее окно IE? - PullRequest
1 голос
/ 31 января 2020

Я пытался создать действительно простой скрипт для поддержания видимости на странице IE, но в настоящее время не могу принудительно установить видимость или положение переднего плана существующего IE окна.

Я могу чтобы успешно активировать окно с помощью WshShell.AppActivate (), но оно не делает страницу передним планом для пользователя. Пример из моего кода приведен ниже.

В основном код повторяется, пока пользователь не закроет окно блокнота. Моя путаница связана именно с тем, почему IE не видно, какие бы команды я ни отправлял

Dim pressX
Dim FindProc
pressX = 1

' Create WScript Shell Object to access filesystem.
Set WshShell = WScript.CreateObject("WScript.Shell")

'WshShell.Run "NoScreenSaver.txt", 2, 0

' Define Which process to seek for to terminate script
strComputer = "."
FindProc = "NoScreenSaver"

Dim objApp  : Set objApp = CreateObject("Shell.Application")
Dim IE      : Set IE = Nothing
Dim objWindow 

' Loop start
Do

    ' Wait for 5 minutes
    WScript.Sleep 3000 '000

    For Each objWindow In objApp.Windows
      If (InStr(objWindow.Name, "Internet Explorer")) Then
        Set IE = objWindow
        Exit For
      End If
    Next

    ' check if specific notepad closed
    If WshShell.AppActivate("NoScreenSaver.txt") = True Then
         'WshShell.AppActivate("iexplore.exe")
         'wscript.echo FindProc & " is running"
    Else
        wscript.echo FindProc & " is not running" & vbCrLf & "Script will now end"
        pressX = 0
    End If
    IE.visible = True
    wshshell.appactivate ie.name
    IE.navigate "google.ca"

    ' Send dummy key
    WshShell.SendKeys "{F13}"

' repeat
Loop While pressX

. Я никогда не хотел использовать AppActivate для проверки указанного окна c в блокноте, так как оно было бы на переднем плане. Есть некоторая информация относительно использования оболочки COM, но подход оболочки COM не возможен в моих ограничениях.

...