VBScript,打开IE,有时visible=true会将其带到前台,有时则不会

问题描述 投票:0回答:3

我正在尝试使用

打开 Internet Explorer
Set ie = createobject("InternetExplorer.Application")
ie.Navigate "www.google.com"
ie. Application.visible = true

奇怪的是,在某些设备上,新的 IE 窗口将在前台打开(最前面,成为活动窗口),而其他设备则在半前台打开(通常是第二个,在最小化当前活动窗口时变为活动窗口)。

想知道是否有人知道造成差异的原因是什么? 感谢任何帮助,提前致谢!

internet-explorer vbscript visible foreground
3个回答
0
投票

来自 Windows API 中 SetForegroundWindow 的帮助。

备注

系统限制哪些进程可以设置前台窗口。一个 仅当满足以下条件之一时,进程才能设置前台窗口 条件成立:

•该进程为前台进程。

•该进程是由前台进程启动的。

•进程接收到最后一个输入事件。

•没有前台进程。

•进程正在调试中。

•前台进程不是现代应用程序或开始屏幕。

•前景未锁定(请参阅LockSetForegroundWindow)。

•前台锁定超时已过期(参见
SystemParametersInfo 中的 SPI_GETFOREGROUNDLOCKTIMEOUT)。

•没有任何菜单处于活动状态。

当用户使用时,应用程序不能强制窗口进入前台。 正在使用另一个窗口。相反,Windows 会闪烁任务栏 窗口按钮通知用户

这意味着什么,如果前台程序启动一个程序,新程序有两秒钟的时间来创建或激活窗口,否则可能会失去该权利。


0
投票

如果任何其他窗口最大化,IE 窗口将不会在前台打开。您可以尝试通过选择永远不会在任务栏上组合的图标来解决此问题。

为了确保在任何设备上激活窗口,您可以使用AppActivate:

Set objShell = WScript.CreateObject("WScript.Shell")
Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objie.navigate "www.google.com"
objIE.Visible = 1
objShell.AppActivate objIE

0
投票

创建文件iexplore.vbs并通过文本编辑器进行编辑

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "google.com"
objIE.Visible = 1
© www.soinside.com 2019 - 2024. All rights reserved.