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

    技术2022-05-11  110

    Option ExplicitPrivate Type INTERNET_PROXY_INFO    dwAccessType    As Long    lpszProxy       As Long    lpszProxyBypass As LongEnd TypePrivate Const INTERNET_OPTION_PROXY = 38Private 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 LongPrivate 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 LongPrivate 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 LongPrivate Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As LongPublic Function GetProxyAddressAndPort(Optional ProxyType As String) As StringDim ProxyInfo As INTERNET_PROXY_INFODim arrBuffer() As ByteDim strAddress As StringDim strBypass As StringReDim arrBuffer(0 To 4095)InternetQueryOption 0&, INTERNET_OPTION_PROXY, arrBuffer(0), UBound(arrBuffer) - LBound(arrBuffer) + 1CopyMemory ProxyInfo, arrBuffer(0), LenB(ProxyInfo)strAddress = VBA.Space(lstrlen(ProxyInfo.lpszProxy))lstrcpy ByVal strAddress, ProxyInfo.lpszProxy'不使用代理的地址 strBypassstrBypass = 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 StringProxyArray = Split(GetProxyAddressAndPort, ";")Dim i As IntegerFor i = LBound(ProxyArray) To UBound(ProxyArray)    If ProxyArray(i) Like "*" & ProxyType & "=*" Then       GetProxyAddressAndPort = VBA.Replace(ProxyArray(i), ProxyType & "=", "")       Exit For    End IfNext iEnd FunctionPrivate 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


    最新回复(0)