问题
我无法触发我的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浏览器。
约束
- 不应使用杀戮过程
- 只能关闭正确的浏览器
- 不应使用JS,因为默认计算机设置已禁用它们A。对于没有JS的倒计时,我在网页上使用GIF作为解决方法
- 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>