скрыть

скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Google  
 

Свои настройки Proxy в программе с TWebBrowser



Автор: Павел

Сразу скажу, что эта статья - маленькая рекомендация тем, кто хочет реализовать возможность работы TWebBrowser в своей программе с настройками Proxy , которые отличаются от стандартных.

В один прекрасный день мне понадобилось в программе периодически менять Proxy и при этом пользоваться всем, что предоставляет IE. Лучший и единственный выбор - TwebBrowser. При близком знакомстве с ним стало понятно, что через Proxy он работать не может (вернее может, но берет настройки из "Свойств обозревателя"). Перспектива постоянно менять настройки реестра меня не прельщала. И как назло ни в одной крупной конференции не было даже упоминания о возможности настройки Proxy в ходе выполнения программы кроме изменения реестра (может плохо искал). Перерыв Fido-архивы и конференции Инета накаткнулся на win-функцию UrlMkSetSessionOption. Вот к чему привели мои изыскания :

....
uses...urlmon, wininet...
  ....
var
  PIInfo: PInternetProxyInfo;
begin
  New(PIInfo);
  PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
  //  Изменение  настроек ПРОКСИ
  PIInfo^.lpszProxy := PChar('some.proxy:someport');
  //  указать  прокси  напр.
  195.43.67.33: 8080
  PIInfo^.lpszProxyBypass := PChar('');
  //  Список адресов, доступ к которым возможен минуя Proxy сервер

  UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo,
    SizeOf(Internet_Proxy_Info), 0);
  ....
    Dispose(PIInfo);
  ....

Вызывать функцию UrlMkSetSessionOption можно из любого места программы, причем любое количество раз и с разными настройками.

После вызова функции TWebBrowser будет работать через указанный прокси. Еще раз повторюсь настройки касаются только текущей сессии (программы на момент выполнения ), общие настройки Windows не изменяются.






Copyright © 2004-2016 "Delphi Sources". Delphi World FAQ




Группа ВКонтакте   Ссылка на Twitter   Группа на Facebook