IWebBrowser2.Navigate打开第二个窗口

时间:2009-07-29 22:35:00

标签: internet-explorer-7 windows-vista iwebbrowser2

以下代码,在带有Internet Explorer 7的Vista上,打开两个窗口(我创建的窗口,然后是第二个窗口,当调用Navigate时,该文件出现在该窗口中)。据我所知,这不会发生在Internet Explorer 8或XP上。知道如何阻止它这样做吗?

     SHDocVw.InternetExplorerClass ieObject = (SHDocVw.InternetExplorerClass)this.ieObject;
     if (this.ieObject == null)
     {
        ieObject = new SHDocVw.InternetExplorerClass();
        this.ieObject = ieObject;
     }

     SHDocVw.IWebBrowser2 browserApp = (SHDocVw.IWebBrowser2)this.ieObject;
     object empty = System.Reflection.Missing.Value;
     browserApp.Visible = true;
     User32.SetForegroundWindow(new IntPtr(browserApp.HWND));
     browserApp.Navigate(filePath, ref empty, ref empty, ref empty, ref empty);

1 个答案:

答案 0 :(得分:0)

您是否导航到受信任的网站?如果导航将跨越完整性级别,则IE必须为该完整性级别创建新进程。 IE8可以在同一个窗口中处理它,因为选项卡和框架可以在不同的进程中。 IE7不支持制表符进程。

如果您的流程位于protected mode,则无法访问具有更高完整性级别的流程。四处走动是编写IE扩展,它将在目标进程中运行以中继您的命令。