Home > database >  VBScript - Bring Microsoft Edge window to foreground
VBScript - Bring Microsoft Edge window to foreground

Time:04-02

My script launches a MS Edge window and then tries to log into Netflix with my credentials. The problem is, at times, the browser window comes up behind the CMD console and the script doesn't work.

How do I launch the browser in the foreground or bring it to the foreground after it's launched?

<!-- :
rem @Echo Off
Set "usr_name=#####"
Set "usr_pass=#####"

%SystemRoot%\System32\cscript.exe //NoLogo "%~f0?.wsf" "%browser%" "%usr_name%" "%usr_pass%"
Exit /B
-->
<Job>
  <Script Language="VBScript">
    Dim ObjShell, MyChrome
    Set ObjShell = WScript.CreateObject("WScript.Shell")
    MyChrome = Chr(34) & WScript.Arguments(0) & Chr(34)
    ObjShell.Run MyChrome & "--app=""https://www.netflix.com/login""", 1
    WScript.Sleep 5000
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys(WScript.Arguments(1))
    ObjShell.SendKeys "{TAB}"
    ObjShell.SendKeys(WScript.Arguments(2))
    ObjShell.SendKeys "{ENTER}"
    WScript.Sleep 6000
    ObjShell.SendKeys "{ESCAPE}"
    ObjShell.SendKeys "{TAB}"
    WScript.Sleep 1000
    ObjShell.SendKeys "{TAB}"
    WScript.Sleep 1000
    ObjShell.SendKeys "{ENTER}"
    WScript.Sleep 6000
    ObjShell.SendKeys "%{F4}"
  </Script>
</Job>

CodePudding user response:

Scripts that depend on SendKeys are notoriously unreliable. A more reliable approach is to control the browser with Seleniumbasic and Chrome driver or use WebView2 in a C# program. Barring that, one option for adding window control functionality to your existing script is to use the command line tool Cmdow. For example:

ObjShell.Run "cmdow ""Netflix*"" /MAX",1,False

Update:

You can also try the built-in AppActivate method:

ObjShell.AppActivate "Netflix"

CodePudding user response:

The solution to to use a powershell cmdlet to minimize all windows before running the script that launches the browser.

'''powershell -command "(new-object -com shell.application).minimizeall()'''

  • Related