Еще одной важной проблемой при использовании WebBrowser 'а является настройка Proxy. Это и понятно поскольку смена ip необходима в каждом авторегере а иногда и граббере.
В сети информации крайне мало:
1 вариант который есть это вам предложат изменять через реестр настройки IE
2 вариант изменять так же настройки IE но динамически.
Как результат у вас всегда будут сбитыми настройки експлоера (сложно проследить что изменения были обращены)
Я вам предлогаю динамическую настройку прокси в webbrowser без изменения настроек системы как таковых.
uses ... urlmon, wininet ... procedure TForm1.Button1Click(Sender: TObject); var PIInfo: PInternetProxyInfo; begin New(PIInfo); PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY; PIInfo^.lpszProxy := PChar('Здесь именно прокси сервер в формате "ip:port"'); PIInfo^.lpszProxyBypass := PChar(''); UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0);
далее мы создаем действия программы, у меня это будет заход на сайт с целью проверки ip:
Webbrowser1.Navigate('http://2ip.ru/');
и уничтожение класса с целью вернуть настройки на стандарт:
Dispose(PIInfo); end;
Получается следующая штука( не забываем кинуть на форму webbrowser и кнопочку Button):
procedure TForm1.Button1Click(Sender: TObject); var PIInfo: PInternetProxyInfo; begin New(PIInfo); PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY; PIInfo^.lpszProxy := PChar('Здесь именно прокси сервер в формате "ip:port"'); PIInfo^.lpszProxyBypass := PChar(''); UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo, SizeOf(Internet_Proxy_Info), 0); Webbrowser1.Navigate('http://2ip.ru/'); Dispose(PIInfo); end;
В завершение хотелось бы сказать что прокси проще задавать из Edit'а. Просто кидаем Edit1 на форму и изменяем строчку:
PIInfo^.lpszProxy := PChar('Здесь именно прокси сервер в формате "ip:port"');
на эту:
PIInfo^.lpszProxy := PChar(Edit1.Text);