📄 131.htm
字号:
<p>VB + API 获取 IE 的 "代理服务器" 配制 </p>
<p></p>
<p>Option Explicit</p>
<p>Private Type INTERNET_PROXY_INFO</p>
<p> dwAccessType As Long</p>
<p> lpszProxy As Long</p>
<p> lpszProxyBypass As Long</p>
<p>End Type</p>
<p>Private Const INTERNET_OPTION_PROXY = 38</p>
<p>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</p>
<p>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</p>
<p>Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByRef pDest As Any, ByRef pSource As Any, ByVal Length As Long)</p>
<p>Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As Long) As Long</p>
<p>Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As Any) As Long</p>
<p>Public Function GetProxyAddressAndPort(Optional ProxyType As String) As String</p>
<p>Dim ProxyInfo As INTERNET_PROXY_INFO</p>
<p>Dim arrBuffer() As Byte</p>
<p>Dim strAddress As String</p>
<p>Dim strBypass As String</p>
<p>ReDim arrBuffer(0 To 4095)</p>
<p>InternetQueryOption 0&, INTERNET_OPTION_PROXY, arrBuffer(0), UBound(arrBuffer) - LBound(arrBuffer) + 1</p>
<p>CopyMemory ProxyInfo, arrBuffer(0), LenB(ProxyInfo)</p>
<p>strAddress = VBA.Space(lstrlen(ProxyInfo.lpszProxy))</p>
<p>lstrcpy ByVal strAddress, ProxyInfo.lpszProxy</p>
<p>注释:不使用代理的地址 strBypass</p>
<p>strBypass = VBA.Space(lstrlen(ProxyInfo.lpszProxyBypass))</p>
<p>lstrcpy ByVal strBypass, ProxyInfo.lpszProxyBypass</p>
<p>注释:GetProxyAddressAndPort = VBA.Trim(VBA.Replace(strAddress, " ", ";")) 注释: & ";" & VBA.Replace(strBypass, " ", ";"))</p>
<p>GetProxyAddressAndPort = VBA.Trim(VBA.Replace(strAddress, " ", ";") & ";" & VBA.Replace(strBypass, " ", ";"))</p>
<p>Dim ProxyArray() As String</p>
<p>ProxyArray = Split(GetProxyAddressAndPort, ";")</p>
<p>Dim i As Integer</p>
<p>For i = LBound(ProxyArray) To UBound(ProxyArray)</p>
<p> If ProxyArray(i) Like "*" & ProxyType & "=*" Then</p>
<p> GetProxyAddressAndPort = VBA.Replace(ProxyArray(i), ProxyType & "=", "")</p>
<p> Exit For</p>
<p> End If</p>
<p>Next i</p>
<p>End Function</p>
<p></p>
<p>Private Sub Command1_Click()</p>
<p>MsgBox GetProxyAddressAndPort("http")</p>
<p>MsgBox GetProxyAddressAndPort("ftp")</p>
<p>MsgBox GetProxyAddressAndPort("gopher")</p>
<p>End Sub</p>
<p></p>
<p>注释:编程配置 IE 的 "代理服务器" 要用到 InternetSetOption</p>
<p>注释:一个例子下载:</p>
<p>注释:http://www.vbip.com/forum/files/webbrowser_proxy.zip </p>
<p> </p>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -