Свої налаштування Proxy в програмі з TWebBrowser. Зміна в ході виконання., Різне, Програмування, статті

Автор: Андрій Попков, Королівство Delphi


Відразу скажу, що ця стаття – маленька рекомендація тим, хто хоче реалізувати можливість роботи TWebBrowser в своїй програмі з настройками Proxy, які відрізняються від стандартних.
В один прекрасний день мені знадобилося в програмі періодично міняти Proxy і при цьому користуватися всім, що надає IE. Кращий і єдиний вибір – TwebBrowser. При близькому знайомстві з ним стало зрозуміло, що через Proxy він працювати не може (вірніше може, але бере налаштування з “Властивості оглядача”). Перспектива постійно змінювати налаштування реєстру мене не приваблювала . І як на зло ні в одній великій конференції не було навіть згадки про можливість налаштування Proxy в ході виконання програми крім зміни реєстру (може погано шукав).
Перерва Fido-архіви і конференції Інету накаткнулся на win-функцію UrlMkSetSessionOption. Ось до чого привели мої вишукування:

….
uses … urlmon, wininet …
….
var PIInfo : PInternetProxyInfo;

New (PIInfo) ;
/ / Зміна налаштувань проксі
PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY ; / / Тип доступу в інтернет – через 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 не змінюються.
Додатково:
INTERNET_PROXY_INFO Structure
Contains information that is supplied with the INTERNET_OPTION_PROXY
value to get or set proxy information on a handle obtained from
a call to the InternetOpen function.
Syntax
typedef struct {
DWORD dwAccessType;
LPCTSTR lpszProxy;
LPCTSTR lpszProxyBypass;
} INTERNET_PROXY_INFO, * LPINTERNET_PROXY_INFO;
Members
dwAccessType
Unsigned long integer value that contains the access type.
This can be one of the following values:
INTERNET_OPEN_TYPE_DIRECT
Internet accessed through a direct connection.
INTERNET_OPEN_TYPE_PRECONFIG
Applies only when setting proxy information.
INTERNET_OPEN_TYPE_PROXY
Internet accessed using a proxy.
lpszProxy
Address of a string value that contains the proxy server list.
lpszProxyBypass
Address of a string value that contains the proxy bypass list.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*