使用vbscript在单独的进程中启动Internet Explorer 8
由于最近在IE8中添加了“功能”,新窗口会自动与单个会话相关联,因此我们的一些代码行为不正常。
这是因为一个单独的应用程序在激活时会启动一个新的IE窗口,并且一旦用户完成,关闭窗口。 这在IE7中运行良好,因为窗口中的会话信息保持独立。 然而,在IE8中,由于会话是在IE窗口之间共享的,我们发现“弹出”应用会破坏第一个应用的会话。
我已阅读有关nomerge开关,所以这是一种解决方法,但我想知道是否有办法将解决方案工作到vbscript的“CreateObject”中; 即:
Dim ieWin As Object
Set ieWin = CreateObject("InternetExplorer.Application")
调用CreateObject函数时有没有办法发送参数?
不,没有办法使用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
如果您可以控制使用IE窗口加载的Web应用程序,则可以将其会话设置为“无cookie”(http://msdn.microsoft.com/zh-cn/library/aa479314.aspx),这样可以避免出现问题你有多个实例。
我们最终选择的解决方案,尽管它比其他任何工作都更容易 - 为弹出窗口分配了一个新的url。
以前,它的工作如下:
呼叫中心代理将每天使用我们的内部应用程序执行其他职责,例如“http:// internalsite / somepage.faces”。 当他们接到电话时,第三方应用程序会启动“http:// internalsite /customerdetails.faces”。 这导致了上述问题。
我们的解决方案是:
我们为其分配了“http:// internalsite /customerdetails.faces”它自己的url,例如“http:// customerdetailminisite /customer.faces”。
通过这种方式,呼叫中心代理可以将其主窗口保留为其他内容,并且在来电时仍能够处理呼叫。
链接地址: http://www.djcxy.com/p/49909.html上一篇: Start Internet Explorer 8 in a separate process using vbscript