首页 文章

VBScript,Open IE,有时可见= true会带来前景,有时则不然

提问于
浏览
0

我正在尝试使用打开Internet Explorer

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

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

想知道是否有人知道导致差异的原因是什么?任何帮助表示赞赏,提前谢谢!

2 回答

  • 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
    

相关问题