профиль встроенного IE - вопрос №174032

при использовании IE в приложении, в C# это класс WebBrowser

1 — существует ли возможность задать програмно папку расположения профиля именно браузера? папка где хранятся временные файлы

2 — возможно ли в одном приложении запустить разные экземпляры этого класса с разными профилями одновременно?



Дополнение автора от 03.01.12 14:04:48

движек тот же, но не все настройки совпадают

хранилище кук и данных заполнения форм у встроенного свое, это видно по настройкам для конкретного сайта, например сохранение тем для яндекса у самого IE одно а у интерированного другое, но к сожалениею одно и тоже даже для разных программ использующих встроенный режим, и я пока не смог найти где именно

кроме того для самого IE можно в настройках указать папку хранения отличающуюся от стандартной. если для встроенного даже стандартная отличается — значит принципиально это все возможно.

вопрос только в том на сколько глубоко зарыты эти настройки и доступны ли они для управления из своей программы, в том числе из .net



Дополнение автора от 03.01.12 14:12:50

гарантирую «лучший ответ» за ответ с аргументацией (ссылки на MSDN или подобные источники с подтверждением)

в случае ссылок на источники показывающие возможность положительного решения обеих вопросов из .net гарнтирую скромное денежное вознаграждение )))

Вопрос задан анонимно
03.01.12
2 ответа

нет 

нет

это же не отдельный браузер а тот же системный експлорер со всеми его настройками

03.01.12

В этом классе живёт только движёк IE, но все его настройки, кеш и т.д. не находится в этом классе WebBrowser. WebBrowser содержит только для отображения страницы.

WebBrowser как наспиано на http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.aspx в Remarks и ниже. Это класс предназначен для отображения страниц HTML  в вашей форме. Все настрйоки с IE необходимо делать в другом классе. Или же использовать реестр Windows. Какой класс — сказать сложно… слишком много копания:) Есть большая вероятность, что это зашито в системной DLL, как например настройки прокси:http://www.vr-online.ru/?q=content/c-menjaem-nastrojki-proksi-1276.

Чтобы поменять настройки реестра из С# используйте RegistryKey Class  http://msdn.microsoft.com/en-us/library/microsoft.win32.registrykey.aspx.

Какая именно настройка реестра отвечает за папки IE  может в разных системах Windows отличаться. Надо смотреть уже конкретно на формумах.

И не забудьте: реестр меняется только из под учётной записи с правами администратора!

11.01.12

Всем спасибо за участие, но уже не актуально )))

для решения моего вопроса в первичной формулировке надо было переопределять

IDocHostUIHandler::GetOptionKeyPath Method

http://msdn.microsoft.com/en-us/library/aa753258(v=VS.85).aspx

самое лучшее описание я нашел как всегда в MSDN

http://msdn.microsoft.com/ru-ru/library/aa770041(v=VS.85).aspx

http://msdn.microsoft.com/ru-ru/library/aa770042(v=VS.85).aspx

так же есть пример правильной реализации

http://support.microsoft.com/kb/183235/ru

к сожалению это все не очень подходит для адаптации под .net

после размышления я пришел к иному решению - можно запускать задачу от имени разных пользователей системы, как следствие у каждого такого экземпляра будет настройка на профиль своего пользователя. это не подошло бы для обычной пользовательской прораммы, но вполне подходит для моей задачи и не требует компонентов на C/C++ )))

с учетом того что ни кто не предложил информации показывающей решение моего вопроса на C#, тема закрывается без «лучшего ответа» и вознаграждения.

еще раз всем спасибо! подтвердилась истина — если вынести вопрос на обсуждение, в любом случае существенно расширяется кругозор и быстрее находится решение!

11.01.12
По мнению автора лучший ответ отсутствует.
Посмотреть всех экспертов из раздела Технологии > .Net/C#
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store