PDA

View Full Version : سوال: مشکل در ست کردن پروکسی بروی webbrowser



aria1o
سه شنبه 25 بهمن 1390, 18:51 عصر
با سلام خدمت دوستان

من با کد زیر میخوام پروکسی بروی IE ست کنم


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


Private Sub Command1_Click()
Dim conn_name As String, proxy_full_addr As String
conn_name = ""
proxy_full_addr = "167.35.217.71:8080"
Call SetConnectionOptions(conn_name, proxy_full_addr)
End Sub
Private Sub Command2_Click()
Dim conn_name As String
conn_name = ""
Call DisableConnectionProxy(conn_name)
End Sub


همین جور که مشاهده می کنید برای، ست کردن نیاز به اسم کانکشن داره ،بیشتر مشکل من با کانکشنهای LAN هست که نمیتونم اسم خواصی رو به کد معرفی کنم .... اگه راه حلی دارید کمک کنید :قلب:

سید حمید حق پرست
سه شنبه 25 بهمن 1390, 19:06 عصر
سلام
پس قسمت پسوردش کجاست؟

سید حمید حق پرست
سه شنبه 25 بهمن 1390, 19:16 عصر
امتحان کردم کار نکرد . رفتم به قسمت :
tools
...internet options
بعد تب connection بعد ssetting

پروکسی ثبت نشده بود

aria1o
سه شنبه 25 بهمن 1390, 19:20 عصر
دوست عزیز اسم کانکشن رو میخواد.الان رو سیستم من درست جواب میده به شرطی که اسم کانکشن رو بهش بدم "conn_name = " ولی روی وایرلس مشکل دارم.

سید حمید حق پرست
سه شنبه 25 بهمن 1390, 19:30 عصر
ie شما ورژنش چنده؟
مال من که هشته

aria1o
چهارشنبه 26 بهمن 1390, 16:11 عصر
ورژن مال من 8 هست ولی فکر نکنم ربطی به ورژن داشته باشه

آقایان Mbt925 (http://barnamenevis.org/member.php?34702-Mbt925) mpmsoft (http://barnamenevis.org/member.php?17067-mpmsoft) xxxxx_xxxxx (http://barnamenevis.org/member.php?46030-xxxxx_xxxxx) Pr0grammer (http://barnamenevis.org/member.php?70458-Pr0grammer) کسی نیست ما رو دریابه !!!؟