0

次のコードは、Internet Explorer 7を搭載したVistaで、2つのウィンドウを開きます(私が作成したウィンドウと、Navigateが呼び出されたときの2番目のウィンドウ(ファイルが表示されるウィンドウ))。私の知る限り、これはInternetExplorer8や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);
4

1 に答える 1

0

信頼できるWebサイトに移動していますか?ナビゲーションが整合性レベルを超える場合、IEはその整合性レベルの新しいプロセスを作成する必要があります。タブとフレームが異なるプロセスにある可能性があるため、IE8は同じウィンドウでこれを処理できます。IE7はタブプロセスをサポートしていません。

プロセスが保護モードの場合、より高い整合性レベルのプロセスにアクセスすることはできません。ウォークアラウンドは、コマンドを中継するためにターゲットプロセスで実行されるIE拡張機能を作成することです。

于 2009-10-24T22:10:15.240 に答える