我正在尝试使用
打开 Internet ExplorerSet ie = createobject("InternetExplorer.Application")
ie.Navigate "www.google.com"
ie. Application.visible = true
奇怪的是,在某些设备上,新的 IE 窗口将在前台打开(最前面,成为活动窗口),而其他设备则在半前台打开(通常是第二个,在最小化当前活动窗口时变为活动窗口)。
想知道是否有人知道造成差异的原因是什么? 感谢任何帮助,提前致谢!
来自 Windows API 中 SetForegroundWindow 的帮助。
备注
系统限制哪些进程可以设置前台窗口。一个 仅当满足以下条件之一时,进程才能设置前台窗口 条件成立:
•该进程为前台进程。
•该进程是由前台进程启动的。
•进程接收到最后一个输入事件。
•没有前台进程。
•进程正在调试中。
•前台进程不是现代应用程序或开始屏幕。
•前景未锁定(请参阅LockSetForegroundWindow)。
•前台锁定超时已过期(参见
SystemParametersInfo 中的 SPI_GETFOREGROUNDLOCKTIMEOUT)。•没有任何菜单处于活动状态。
当用户使用时,应用程序不能强制窗口进入前台。 正在使用另一个窗口。相反,Windows 会闪烁任务栏 窗口按钮通知用户
这意味着什么,如果前台程序启动一个程序,新程序有两秒钟的时间来创建或激活窗口,否则可能会失去该权利。
如果任何其他窗口最大化,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
创建文件iexplore.vbs并通过文本编辑器进行编辑
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "google.com"
objIE.Visible = 1