Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.01;
Скачать: CL | DM;

Вниз

свойства обозревателя   Найти похожие ветки 

 
ga3 ©   (2003-03-06 03:51) [0]

добрый вечер. может быть ктото знает как с помощью функции InternetSetOption установить прокси-сервер в свойствах обозревателя, поделитесь плиз куском кода. вот здесь: http://msdn.microsoft.com/library/en-us/wininet/wininet/setting_and_retrieving_internet_options.asp есть пример, но он на Си, а этого языка я не знаю вообще. помогите плиз.


 
int64 ©   (2003-03-06 11:17) [1]

Проблема не в переводе. Логика как-раз примитивная:
1. Объявляется переменная list.
2. Заполняются её поля, как тебе надо.
3. InternetSetOption(..., @list, sizeof(list));

Проблема в том, что структура list и типы с константами для заполнения не описаны в Delphi (или описаны под другими именами). Не хочется разбираться. Легче поискать готовые решения. Они и здесь проскальзывали.

Для решения проблемы могу предложить альтернативный метод. Лобовой и примитивный. Связанный с непосредственным редактированием реестра.


uses ..., WinInet, Registry;
...
Procedure EnableProxy(cost Server: String);
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings",False);
Reg.WriteString("ProxyServer",Server);
Reg.WriteBool("ProxyEnable,True);
Reg.CloseKey;
Reg.Free;
InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0);
end;

Procedure DisableProxy;
var
Reg : TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings",False);
Reg.WriteBool("ProxyEnable,False);
Reg.CloseKey;
Reg.Free;
InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0);
end;


Примеры:

EnableProxy("proxyserver:8080")
EnableProxy("ftp=ftpproxyserver:2121;gopher=goproxyserver:3333;http=httpproxyserver:8080;https=httpsproxyserver:8080");
EnableProxy("http=httpproxyserver:8080");


InternetSetOption в коде для того, чтобы утверждать настройки без перезагрузки браузера.


 
ga3 ©   (2003-03-06 18:27) [2]

этот код действует только на директ коннекшен, при работе с диалап подключением ничего не меняется:-(


 
Anatoly Podgoretsky ©   (2003-03-06 18:43) [3]

То же самое, но только делать для каждого отдельного соединения, а вот в реестре они могут быть в разных местах, зависит от многих фауторов.
Правильный путь это все таки с помощью WinInet.dll но тебе тут мешает незнания языка к сожалению.


 
Anatoly Podgoretsky ©   (2003-03-06 18:46) [4]

Тебе может помочь описание на русском языке http://rsdn.ru/, но надо хорошо знать работу сети


 
ga3 ©   (2003-03-06 21:09) [5]

2Anatoly Podgoretsky:
я там ничего нового не нашел, все это есть на мсдн.
вобщем проблема осталась... неужели никто не знает как в дельфях организовать все это дело? блин все обыскал нигде нету описания этих гребаных констант и типов для дельфи.


 
nikkie ©   (2003-03-06 23:18) [6]

такие вещи надо искать на http://www.delphi-jedi.org/
ftp://delphi-jedi.org/api/WinInet.zip


 
ga3 ©   (2003-03-07 03:41) [7]

спасибо за ссылку. только вот одна маленькая проблемка:-)) после замены штатного wininet.pas на скачанный с типами и константами все решилось, но при компиляции появилось сообщение:
[Fatal Error] Project1.dpr(5): Unit ShlObj was compiled with a different version of WinInet.INTERNET_MAX_URL_LENGTH
во, бля:-)))
и че теперь делать не подскажете?


 
ga3 ©   (2003-03-07 03:43) [8]

кстати, мож это изза кривизны моих рук и "инсталлировать" этот wininet нужно как-то по-другому? у меня Д6 если это критично.


 
ga3 ©   (2003-03-07 05:44) [9]

ПАМАГИТЕ!!!



Страницы: 1 вся ветка

Текущий архив: 2003.05.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
14-752
kalishenko
2003-04-09 20:56
2003.05.01
Компонента SystemWorks! for Delphi 5


1-553
Маша
2003-04-21 13:05
2003.05.01
Drag&Drop


1-520
()utLaw
2003-04-20 22:46
2003.05.01
Запуск и ожидание окончания


3-394
xxxCrazyManxxx
2003-04-11 11:57
2003.05.01
Помогите с UNION в MS SQL 7


3-452
alive
2003-04-13 00:02
2003.05.01
Interbase commit