Как заставить SHDocVw.InternetExplorer повторно использовать одно и то же окно в Vista, как в XP?

Я работаю над программой, которая использует 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);

person Jack    schedule 26.02.2010    source источник
comment
Это может быть связано с самим IE. Vista имеет версию 7. Какая версия у вас была на XP?   -  person Timores    schedule 27.02.2010
comment
И какую версию IE вы используете в Vista?   -  person Timores    schedule 27.02.2010
comment
Это IE 7 для XP и IE 8 для Vista. Я попробую это с IE 8 на XP, чтобы увидеть, есть ли разница.   -  person Jack    schedule 01.03.2010
comment
Я установил IE 8 на свой компьютер с XP, и он отлично работает. Так что это определенно проблема XP и Vista.   -  person Jack    schedule 01.03.2010
comment
На данный момент я только что установил флаги для NewTab. По крайней мере, я могу хранить их все в одном окне. Кажется, что для текущей вкладки нет флага, так как это поведение по умолчанию в XP. Поведение по умолчанию было изменено на новое окно в Windows Vista, но флаг CurrentTab никогда не добавлялся.   -  person Jack    schedule 01.07.2010


Ответы (2)


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

person Rob    schedule 26.02.2010

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

person Payton Byrd    schedule 26.02.2010