Технологии
профиль встроенного IE - вопрос №174032
при использовании IE в приложении, в C# это класс WebBrowser
1 — существует ли возможность задать програмно папку расположения профиля именно браузера? папка где хранятся временные файлы
2 — возможно ли в одном приложении запустить разные экземпляры этого класса с разными профилями одновременно?
Дополнение автора от январь 3, 2012 г., 13:04:48
движек тот же, но не все настройки совпадают
хранилище кук и данных заполнения форм у встроенного свое, это видно по настройкам для конкретного сайта, например сохранение тем для яндекса у самого IE одно а у интерированного другое, но к сожалениею одно и тоже даже для разных программ использующих встроенный режим, и я пока не смог найти где именно
кроме того для самого IE можно в настройках указать папку хранения отличающуюся от стандартной. если для встроенного даже стандартная отличается — значит принципиально это все возможно.
вопрос только в том на сколько глубоко зарыты эти настройки и доступны ли они для управления из своей программы, в том числе из .net
Дополнение автора от январь 3, 2012 г., 13:12:50
гарантирую «лучший ответ» за ответ с аргументацией (ссылки на MSDN или подобные источники с подтверждением)
в случае ссылок на источники показывающие возможность положительного решения обеих вопросов из .net гарнтирую скромное денежное вознаграждение )))
Вопрос задан анонимно январь 2, 2012 г.
-
Всего ответов: 2
-
нет
нет
это же не отдельный браузер а тот же системный експлорер со всеми его настройками
-
В этом классе живёт только движёк 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 отличаться. Надо смотреть уже конкретно на формумах.
И не забудьте: реестр меняется только из под учётной записи с правами администратора!
-
Всем спасибо за участие, но уже не актуально )))
для решения моего вопроса в первичной формулировке надо было переопределять
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#, тема закрывается без «лучшего ответа» и вознаграждения.
еще раз всем спасибо! подтвердилась истина — если вынести вопрос на обсуждение, в любом случае существенно расширяется кругозор и быстрее находится решение!