Как заставить SHDocVw.InternetExplorer повторно использовать то же самое окно в Vista, как и в XP? - PullRequest
2 голосов
/ 27 февраля 2010

Я работаю над программой, которая использует IE для отображения страниц справки. Я использую C # в Visual Studio 2008 при компиляции в .Net Framework 2.0. В Windows XP все работает как положено. В Vista каждый раз, когда я нажимаю кнопку помощи, я получаю новое окно с новым браузером IE. Кто-нибудь еще видел это или знает, как обойти это?

Вот код, который я использую для отображения страницы. strDefault - местоположение файла справки html, который я пытаюсь загрузить. и все флаги, postData и заголовки пусты. Целевой фрейм пуст, потому что он просто загружает главную страницу, после этого у меня есть код для загрузки определенного фрейма. Эта часть отлично работает. Это метод Navigate, который открывает новое окно в Vista. Я пытался использовать некоторые параметры флага, но безрезультатно.

SHDocVw.InternetExplorer myIE = new SHDocVw.InternetExplorer();
string strDefault = "Frame.htm"
object Flags = new object();
object TargetFrameName = new object();
object PostData = new object();
object Headers = new object();
myIE.Navigate(strDefault, ref Flags, ref TargetFrameName, ref PostData, ref Headers);

Ответы [ 2 ]

1 голос
/ 27 февраля 2010

Взгляните на Навигация оболочки на месте с помощью элемента управления WebBrowser в Windows 7 из блога IEInternals. Это не совсем та же проблема (или, по крайней мере, я так не думаю!), Но, надеюсь, она укажет вам правильный ответ.

1 голос
/ 27 февраля 2010

Существуют фундаментальные изменения в том, как IE работает с ОС из Vista, включая тот факт, что новые запросы браузера происходят в новых процессах, а не в одном и том же процессе. Кроме того, вы используете IE8? Если это так, каждая вкладка запускается в своем собственном процессе в одном и том же окне.

...