Главная страницаОбратная связьКарта сайта

Свои настройки 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 не изменяются.


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Свои настройки Proxy в программе с TWebBrowser", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info