IWebBrowser2.Navigate открывает второе окно - PullRequest
0 голосов
/ 30 июля 2009

Следующий код в Vista с Internet Explorer 7 открывает два окна (то, которое я создаю, и второе, когда вызывается 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);

1 Ответ

0 голосов
/ 25 октября 2009

Вы переходите на надежный веб-сайт? Если навигация пересекает уровни целостности, IE должен создать новый процесс для этого уровня целостности. IE8 может обрабатывать это в одном и том же окне, потому что вкладки и фрейм могут находиться в разных процессах. IE7 не поддерживает процессы вкладок.

Если ваш процесс находится в защищенном режиме , вы не сможете получить доступ к процессу с более высоким уровнем целостности. Обходной путь - написать IE расширение, которое будет запускаться в целевом процессе для передачи ваших команд.

...