VBScript无法在倒计时后关闭IE浏览器



问题

我无法触发我的VBS脚本打开的浏览器的自动关闭:

Set objShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("Winmgmts:\.rootcimv2")
Set objIE = WScript.CreateObject("InternetExplorer.Application")
Set colItems = objWMIService.ExecQuery("Select * From Win32_DesktopMonitor where DeviceID = 'DesktopMonitor1'",,0)
For Each objItem in colItems
  intHorizontal = objItem.ScreenWidth
  intVertical = objItem.ScreenHeight
Next
objIE.Visible = 1
objIE.Navigate "D:localpathfilename.htm"
objShell.AppActivate objIE
Do Until VarType(objIE) = 9
  WScript.Sleep 1000
  'For Each p In colItems
  'p.Terminate
  'Next
  'objIE.Quit
Loop
objIE.Quit
Set objIE = Nothing

当我尝试objIE.Quit时,我会得到错误The object invoked has disconnected from its clients(80010108)。我尝试在断开连接之前调用对象,但什么也不会发生:

Do Until VarType(objIE) = 9
  WScript.Sleep 60000
  objIE.Quit
Loop

需要

我需要一个打开我的网页,进行1分钟倒计时的脚本,然后关闭IE浏览器。

约束

  1. 不应使用杀戮过程
  2. 只能关闭正确的浏览器
  3. 不应使用JS,因为默认计算机设置已禁用它们A。对于没有JS的倒计时,我在网页上使用GIF作为解决方法
  4. HTM必须是本地。objie.quit在htm在线托管时工作

看来问题在于本地HTM文件。虽然我找不到解决方案,但我改为将脚本更改为HTA,现在效果很好:

VBS

Const SHOW_ACTIVE_APP = 1 
Set objShell = Wscript.CreateObject("Wscript.Shell") 
objShell.Run ("filename.hta") &, SHOW_ACTIVE_APP, True 
Wscript.Quit

hta

<head>
<HTA:APPLICATION 
     APPLICATIONNAME="AppName"
     SINGLEINSTANCE="yes"
     SHOWINTASKBAR="no"  
     ICON="" 
     SCROLL="no"
     CAPTION="yes"
     >
    <style type="text/css">
    </style>
    <title>Information Security</title>
    <script language="VBScript">
        Sub Window_onLoad
            window.resizeTo 680,390
        End Sub 
    </script>
    <script type="text/javascript">
    </script>
</head>
<body>
    <!-- html content -->
</body>

最新更新