|
|
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Вопрос в следующем. Есть 2 проски сервера, хочеться сделать WebBrowser пользующийся 2 proxy в зависимости тот который с данный момент включен. Есть ли у контрола WebBrowser свойство, которому можно задавать проксю? Но желательно минуя реестр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2007, 15:18 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Что никто не сталкивался с такой проблемой? вот что сам нашел, но это дельфистов: Свои настройки 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 не изменяются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 12:15 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Что мешает самому воспользоваться ф-ей UrlMkSetSessionOption и посмотреть результат? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 15:05 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
AntonariyЧто мешает самому воспользоваться ф-ей UrlMkSetSessionOption и посмотреть результат? Вопрос как ее декларировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 15:31 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Ответ Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 15:37 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Хоршо по тихоньку продвигаемся, осталось узнать как работать с функциями: SizeOf, Dispose что за переменные: INTERNET_OPEN_TYPE_PROXY; Internet_Proxy_Info, INTERNET_OPTION_PROXY что за объект: PInternetProxyInfo и как его декларировать? :D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:07 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Шаблон поиска деклараций в яндексе: declare <имя функции, типа или констанаты>. Все просто, если подумать. PInternetProxyInfo это тип, а не объект, SizeOf это Len, Dispose тебе не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:33 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Вернее тип это Internet_Proxy_Info, PInternetProxyInfo это указатель, тебе он не нужен. INTERNET_OPEN_TYPE_PROXY и INTERNET_OPTION_PROXY - константы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:37 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Короче на vb это выглядит так: Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 16:41 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Вот до чего дошел: Модуль: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. UrlMkSetSessionOption INTERNET_OPTION_PROXY, ipi , Len(ipi), 0 несоответствие типов ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 17:39 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
konstsuВот до чего дошел: Модуль: Код: plaintext 1. 2. 3. 4. UrlMkSetSessionOption INTERNET_OPTION_PROXY, ipi , Len(ipi), 0 несоответствие типов ??? Может ByRef pBuffer As Any? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.10.2007, 21:50 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Serge Gavrilov konstsuВот до чего дошел: Модуль: Код: plaintext 1. 2. 3. 4. UrlMkSetSessionOption INTERNET_OPTION_PROXY, ipi , Len(ipi), 0 несоответствие типов ??? Может ByRef pBuffer As Any? Спасибо, от одной ошибки избавился, появилась другая. Таж строка: ошибка 49 "Bad DLL calling convention" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 09:46 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
konstsu Дело в том, что UrlMkSetSessionOption – это не Function а Sub (обратите внимание на то, что Вы декларируете ее как функцию, но не указываете тип возвращаемого значения). В общем декларация такая: Код: plaintext 1. 2. А вообще воспользуйтесь ApiViewer – там найдете декларации подавляющего большинства Api-функций и значения констант. А если поставите себе Api-Guide, то там найдете примеры использования многих Api-функций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 14:53 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
lena_### konstsu Дело в том, что UrlMkSetSessionOption – это не Function а Sub (обратите внимание на то, что Вы декларируете ее как функцию, но не указываете тип возвращаемого значения). В общем декларация такая: Код: plaintext 1. 2. А вообще воспользуйтесь ApiViewer – там найдете декларации подавляющего большинства Api-функций и значения констант. А если поставите себе Api-Guide, то там найдете примеры использования многих Api-функций. Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 16:03 |
|
||
|
WebBrowser + 2 Proxy ?
|
|||
|---|---|---|---|
|
#18+
Вообще учитывая все выше сказанное получаем (Если кому интересно): Модуль: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Форма: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2007, 16:07 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=34904980&tid=2162410]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
62ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 423ms |

| 0 / 0 |
