27.05.2011, 17:09 | #1 (ссылка) |
Новичок
Регистрация: 21.05.2011
Сообщений: 3
Репутация: 0
|
Visual Basic, webbrowser и прокси
Всем Доброго времени суток! Образовалась не большая проблемка с прокси в webbrowser'е, хотел сделать поддрежку прокси в своей проге, поддержка удалась, но вот, как сбросить настройки прокси я не могу понять, может кто поможет, что бы было понятнее о чем речь выкладываю код:
Это из declarations: Код:
Const ERROR_INSUFFICIENT_BUFFER = 122 Const INTERNET_OPTION_PROXY = 38 Const INTERNET_OPEN_TYPE_DIRECT = 1 Const INTERNET_OPEN_TYPE_PROXY = 3 Const INTERNET_OPTION_PROXY_SETTINGS_CHANGED = 95 Private Type INTERNET_PROXY_INFO dwAccessType As Long lpszProxy As String lpszProxyBypass As String End Type Private Declare Function UrlMkSetSessionOption Lib "urlmon.dll" (ByVal dwOption As Long, ByRef pBuffer As Any, ByVal dwBufferLength As Long, ByVal dwReserved As Long) As Long Код:
Private Function fSetProxy() Dim proxyInfo As INTERNET_PROXY_INFO With proxyInfo .dwAccessType = INTERNET_OPEN_TYPE_PROXY .lpszProxy = Text1.Text .lpszProxyBypass = Text2.Text End With UrlMkSetSessionOption INTERNET_OPTION_PROXY, proxyInfo, LenB(proxyInfo), 0& End Function Последний раз редактировалось ExPlayer; 27.05.2011 в 17:28. |
28.05.2011, 00:22 | #2 (ссылка) |
Новичок
Регистрация: 21.05.2011
Сообщений: 3
Репутация: 0
|
Сделал, по-другому! Выкладываю код (мало ли, может кому-нибудь пригодится):
Код:
'Код модуля Option Explicit Private Type INTERNET_PER_CONN_OPTION dwOption As Long dwValue1 As Long dwValue2 As Long End Type Private Type INTERNET_PER_CONN_OPTION_LIST dwSize As Long pszConnection As Long dwOptionCount As Long dwOptionError As Long pOptions As Long End Type Private Const INTERNET_PER_CONN_FLAGS As Long = 1 Private Const INTERNET_PER_CONN_PROXY_SERVER As Long = 2 Private Const INTERNET_PER_CONN_PROXY_BYPASS As Long = 3 Private Const PROXY_TYPE_DIRECT As Long = &H1 Private Const PROXY_TYPE_PROXY As Long = &H2 Private Const INTERNET_OPTION_REFRESH As Long = 37 Private Const INTERNET_OPTION_SETTINGS_CHANGED As Long = 39 Private Const INTERNET_OPTION_PER_CONNECTION_OPTION As Long = 75 Private Declare Function InternetSetOption _ Lib "wininet.dll" Alias "InternetSetOptionA" ( _ ByVal hInternet As Long, ByVal dwOption As Long, _ lpBuffer As Any, ByVal dwBufferLength As Long) As Long ' Set Proxy Public Function SetConnectionOptions(ByVal conn_name As String, ByVal proxy_full_addr As String) As Boolean ' conn_name: active connection name. (LAN = "") ' proxy_full_addr : eg "193.28.73.241:8080" Dim list As INTERNET_PER_CONN_OPTION_LIST Dim bReturn As Boolean Dim dwBufSize As Long Dim options(0 To 2) As INTERNET_PER_CONN_OPTION Dim abConnName() As Byte Dim abProxyServer() As Byte Dim abProxyBypass() As Byte dwBufSize = Len(list) ' Fill out list struct. list.dwSize = Len(list) ' NULL == LAN, otherwise connection name. abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode) list.pszConnection = VarPtr(abConnName(0)) ' Set three options. list.dwOptionCount = 3 ' Set flags. options(0).dwOption = INTERNET_PER_CONN_FLAGS options(0).dwValue1 = PROXY_TYPE_DIRECT Or PROXY_TYPE_PROXY ' Set proxy name. options(1).dwOption = INTERNET_PER_CONN_PROXY_SERVER abProxyServer() = StrConv(proxy_full_addr & vbNullChar, vbFromUnicode) options(1).dwValue1 = VarPtr(abProxyServer(0)) '//"http://proxy:80" ' Set proxy override. options(2).dwOption = INTERNET_PER_CONN_PROXY_BYPASS abProxyBypass() = StrConv("local" & vbNullChar, vbFromUnicode) options(2).dwValue1 = VarPtr(abProxyBypass(0)) list.pOptions = VarPtr(options(0)) ' Make sure the memory was allocated. If (0& = list.pOptions) Then ' Return FALSE if the memory wasn't allocated. Debug.Print "Failed to allocate memory in SetConnectionOptions()" SetConnectionOptions = 0 End If ' Set the options on the connection. bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize) ' Free the allocated memory. Erase options Erase abConnName Erase abProxyServer Erase abProxyBypass dwBufSize = 0 list.dwOptionCount = 0 list.dwSize = 0 list.pOptions = 0 list.pszConnection = 0 Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0) Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0) SetConnectionOptions = bReturn End Function ' Disable Proxy Public Function DisableConnectionProxy(ByVal conn_name As String) As Boolean ' conn_name: active connection name. (LAN = "") Dim list As INTERNET_PER_CONN_OPTION_LIST Dim bReturn As Boolean Dim dwBufSize As Long Dim options(0) As INTERNET_PER_CONN_OPTION Dim abConnName() As Byte dwBufSize = Len(list) ' Fill out list struct. list.dwSize = Len(list) ' NULL == LAN, otherwise connectoid name. abConnName() = StrConv(conn_name & vbNullChar, vbFromUnicode) list.pszConnection = VarPtr(abConnName(0)) ' Set three options. list.dwOptionCount = 1 ' Set flags. options(0).dwOption = INTERNET_PER_CONN_FLAGS options(0).dwValue1 = PROXY_TYPE_DIRECT list.pOptions = VarPtr(options(0)) ' Make sure the memory was allocated. If (0 = list.pOptions) Then ' Return FALSE if the memory wasn't allocated. Debug.Print "Failed to allocate memory in DisableConnectionProxy()" DisableConnectionProxy = 0 End If ' Set the options on the connection. bReturn = InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, list, dwBufSize) ' Free the allocated memory. Erase options Erase abConnName dwBufSize = 0 list.dwOptionCount = 0 list.dwSize = 0 list.pOptions = 0 list.pszConnection = 0 Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, ByVal 0&, 0) Call InternetSetOption(0, INTERNET_OPTION_REFRESH, ByVal 0&, 0) DisableConnectionProxy = bReturn End Function |
28.05.2011, 00:23 | #3 (ссылка) |
Новичок
Регистрация: 21.05.2011
Сообщений: 3
Репутация: 0
|
Код:
'Код активации прокси(уже на форме): Private Sub Command1_Click() Dim conn_name As String, proxy_full_addr As String conn_name = "" proxy_full_addr = Text1.Text Call SetConnectionOptions(conn_name, proxy_full_addr) MsgBox "Настройки прокси были применены успешно", vbInformation, Me.Caption End Sub Код:
'Код деактивации прокси(так же на форме): Private Sub Command3_Click() Dim conn_name As String Call DisableConnectionProxy(conn_name) End Sub |
Ads | |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
visual basic | -=vasiliy=- | Программирование | 1 | 27.05.2011 14:08 |
Подскажите по visual basic | akhalex38 | Программирование | 0 | 01.03.2011 23:00 |
Не могу сохранить компоненты в панли компонентов в программе Visual Basic 6 | Михаил Белоголов | Программирование | 1 | 01.03.2011 22:57 |
Обработка массивов в Visual Basic | Demented | Программирование | 0 | 23.02.2011 19:57 |
Скачать Visual Basic | Джон. | Программирование | 2 | 22.01.2011 23:16 |
Подскажите где скачать visual basic 6.0 русскую версию | Brakus | Программирование | 5 | 16.05.2010 14:43 |
Решение 1-ой задачи на Visual Basic (Срочно) | МаксОн | Программирование | 0 | 22.03.2010 17:47 |
Проблемы с установкой Visual Basic 2008 | solanval | Windows XP | 1 | 29.09.2009 20:52 |
Задачи по Visual Basic | Sport666 | Программирование | 4 | 30.05.2009 19:30 |
visual basic | igor058021 | Программы | 5 | 15.05.2009 19:43 |
Решение задач на Pascal и Visual Basic | Максат | Программирование | 0 | 21.03.2009 14:07 |
3D в Visual Basic 6.0 | 1223 | Программирование | 1 | 28.11.2007 14:09 |