zoukankan      html  css  js  c++  java
  • VB + API 获取 IE 的 "代理服务器" 配制

    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

  • 相关阅读:
    bzoj:1299: [LLH邀请赛]巧克力棒
    [51nod][cf468D]1558 树中的配对
    HDU5447 Good Numbers
    Timus Online Judge:ural:1006. Square Frames
    poj1830:开关问题
    bzoj:1776: [Usaco2010 Hol]cowpol 奶牛政坛
    bzoj:1725: [Usaco2006 Nov]Corn Fields牧场的安排
    bzoj:1828: [Usaco2010 Mar]balloc 农场分配
    bzoj:1584: [Usaco2009 Mar]Cleaning Up 打扫卫生
    bzoj:1598: [Usaco2008 Mar]牛跑步
  • 原文地址:https://www.cnblogs.com/Microshaoft/p/2485798.html
Copyright © 2011-2022 走看看