(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Свои настройки Proxy в программе с TWebBrowser. Изменение в ходе выполнения.

Источник: delphikingdom
Андрей Попков

Автор: Андрей Попков, Королевство 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. 

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 22.06.2009 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Delphi Professional Named User
Enterprise Connectors (1 Year term)
IBM DOMINO COLLABORATION EXPRESS AUTHORIZED USER ANNUAL SW SUBSCRIPTION & SUPPORT RENEWAL
ABBYY Lingvo x6 Английская Профессиональная версия
Zend Server with Z-Ray Developer Edition - Standard
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
OS Linux для начинающих. Новости + статьи + обзоры + ссылки
Программирование в AutoCAD
СУБД Oracle "с нуля"
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100