使用vbscript在单独的进程中启动Internet Explorer 8

时间:2011-01-10 14:12:49

标签: vbscript internet-explorer-8

由于最近在IE8中添加了“功能”,其中新窗口自动与single session相关联,因此我们的一些代码表现不正常。

这是因为单独的应用程序会在激活时启动新的IE窗口,一旦用户完成,请关闭窗口。这在IE7中运行良好,因为窗口中的会话信息保持独立。但是在IE8中,由于会话在IE窗口之间共享,我们发现“弹出”应用程序会破坏第一个应用程序上的会话。

我已经阅读了有关nomerge开关的内容,因此这是一种解决方法,但我想知道是否有办法将解决方案应用到vbscript的“CreateObject”中;即:

Dim ieWin As Object
Set ieWin = CreateObject("InternetExplorer.Application")

调用CreateObject函数时有没有办法发送参数?

3 个答案:

答案 0 :(得分:4)

不,没有办法使用COM来创建指定此行为的IE实例(或任何其他行为,例如InPrivate,No Add-ons等)。您可以执行的仅 事情是使用为此目的提供的CLSID创建默认为MediumIL的自动化实例。 http://blogs.msdn.com/b/ieinternals/archive/2011/08/03/internet-explorer-automation-protected-mode-lcie-default-integrity-level-medium.aspx

答案 1 :(得分:0)

如果您可以控制正在加载IE窗口的Web应用程序,则可以将其会话设置为“无cookie”(http://msdn.microsoft.com/en-us/library/aa479314.aspx),这将避免您遇到多个实例时出现的问题。

答案 2 :(得分:0)

我们最终采用的解决方案,虽然它比其他任何东西都更有效 - 正在为弹出的窗口分配一个新的URL。

以前,它的工作原理如下:

  

呼叫中心座席将使用我们的内部应用程序执行其他任务   例如“http:// internalsite /somepage.faces”日复一日。   当他们接到电话时,第三方应用程序会启动   的 “http:// <强> internalsite /customerdetails.faces”。这导致了上述问题。

我们采用的解决方案:

  

我们分配了“http:// internalsite /customerdetails.faces”这是自己的网址,例如“http:// customerdetailminisite /customer.faces”。

通过这种方式,呼叫中心座席可以将其主窗口保持打开状态,以便在其进入时能够处理呼叫。