以下代码,在带有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);
答案 0 :(得分:0)
您是否导航到受信任的网站?如果导航将跨越完整性级别,则IE必须为该完整性级别创建新进程。 IE8可以在同一个窗口中处理它,因为选项卡和框架可以在不同的进程中。 IE7不支持制表符进程。
如果您的流程位于protected mode,则无法访问具有更高完整性级别的流程。四处走动是编写IE扩展,它将在目标进程中运行以中继您的命令。