2009-07-29 12 views
0

Internet Explorer 7を搭載したVistaの次のコードは、2つのウィンドウ(作成したものと、Navigateが呼び出されたときの2つ目のウィンドウ(ファイルが表示されるもの))を開きます。これは、私が知る限り、Internet Explorer 8またはXPでは発生しません。どのように私はそれをやってそれを停止することができますか?IWebBrowser2.Navigateは第2のウィンドウを開きます

 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

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

プロセスがprotected modeの場合、より高い整合性レベルのプロセスにアクセスすることはできません。あなたのコマンドを中継するために、ターゲットプロセスで実行されるIE拡張を書きます。

関連する問題