VB + API 获取 IE 的 "代理服务器" 配制

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

Option Explicit

Private Type INTERNET_PROXY_INFO

dwAccessType As Long

lpszProxy As Long

lpszProxyBypass As Long

End Type

Private Const INTERNET_OPTION_PROXY = 38

Private Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" (ByVal hInternet As Long, ByVal dwOption As Long, ByRef lpBuffer As Any, ByVal dwBufferLength As Long) As Long

Private Declare Function InternetQueryOption Lib "wininet.dll" Alias "InternetQueryOptionA" (ByVal hInternet As Long, ByVal dwOption As Long, ByRef lpBuffer As Any, ByRef dwBufferLength As Long) As Long

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pDest As Any, ByRef pSource As Any, ByVal Length As Long)

Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long

Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long

Public Function GetProxyAddressAndPort(Optional ProxyType As String) As String

Dim ProxyInfo As INTERNET_PROXY_INFO

Dim arrBuffer() As Byte

Dim strAddress As String

Dim strBypass As String

ReDim arrBuffer(0 To 4095)

InternetQueryOption 0&, INTERNET_OPTION_PROXY, arrBuffer(0), UBound(arrBuffer) - LBound(arrBuffer) + 1

CopyMemory ProxyInfo, arrBuffer(0), LenB(ProxyInfo)

strAddress = VBA.Space(lstrlen(ProxyInfo.lpszProxy))

lstrcpy ByVal strAddress, ProxyInfo.lpszProxy

'不使用代理的地址 strBypass

strBypass = VBA.Space(lstrlen(ProxyInfo.lpszProxyBypass))

lstrcpy ByVal strBypass, ProxyInfo.lpszProxyBypass

'GetProxyAddressAndPort = VBA.Trim(VBA.Replace(strAddress, " ", ";")) ' & ";" & VBA.Replace(strBypass, " ", ";"))

GetProxyAddressAndPort = VBA.Trim(VBA.Replace(strAddress, " ", ";") & ";" & VBA.Replace(strBypass, " ", ";"))

Dim ProxyArray() As String

ProxyArray = Split(GetProxyAddressAndPort, ";")

Dim i As Integer

For i = LBound(ProxyArray) To UBound(ProxyArray)

If ProxyArray(i) Like "*" & ProxyType & "=*" Then

GetProxyAddressAndPort = VBA.Replace(ProxyArray(i), ProxyType & "=", "")

Exit For

End If

Next i

End Function

Private Sub Command1_Click()

MsgBox GetProxyAddressAndPort("http")

MsgBox GetProxyAddressAndPort("ftp")

MsgBox GetProxyAddressAndPort("gopher")

End Sub

'编程配置 IE 的 "代理服务器" 要用到 InternetSetOption

'一个例子下载:

'http://www.vbip.com/forum/files/webbrowser_proxy.zip

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航