2009-07-29 2 views
0

Следующий код на Vista с Internet Explorer 7 открывает два окна (тот, который я создаю, а затем второй, когда вызывается Navigate, который является тем, в котором находится файл). Насколько я знаю, это не происходит в Internet Explorer 8 или на XP. Любая идея, как я могу это остановить?IWebBrowser2.Navigate открывает второе окно

 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, которое будет запускаться в целевом процессе для передачи ваших команд.

Смежные вопросы