2009-07-29 8 views
0

Le code suivant, sur Vista avec Internet Explorer 7, ouvre deux fenêtres (celle que je crée, puis une seconde lorsque Navigate est appelée, celle dans laquelle apparaît le fichier). Cela ne se produit pas dans Internet Explorer 8 ou XP autant que je sache. Une idée de comment je peux l'arrêter de faire ça?IWebBrowser2.Navigate ouvre la deuxième fenêtre

 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); 

Répondre

0

Êtes-vous en train de naviguer vers un site Web de confiance? Si la navigation franchit les niveaux d'intégrité, IE doit créer un nouveau processus pour ce niveau d'intégrité. IE8 peut gérer cela dans la même fenêtre parce que les onglets et le cadre peuvent être dans des processus différents. IE7 ne prend pas en charge les processus d'onglet.

Si votre processus est dans protected mode, vous ne pouvez pas accéder au processus avec des niveaux d'intégrité supérieurs. Une promenade autour est d'écrire l'extension IE qui s'exécuterait dans le processus cible pour relayer vos commandes.

Questions connexes