调用API为程序实例设置代理(VB)

在《VB设置WebBrowser的COOKIE、临时文件夹等路径》一文中,我们介绍了为Webbrowser设置cookie路径的方法,同理可以为Webbrowser设置代理。但是如果程序中没有Webbrowser控件,用到了其他的网络功能,怎么设置代理呢?我们可以调用wininet.dll中的InternetSetOption函数。好了,直接给出核心代码。

 

'========================================
'声明作用:为本实例设置代理
'========================================
Private Const INTERNET_OPTION_PROXY = 38
Private Const URLMON_OPTION_USERAGENT = &H10000001
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_OPTION_SETTINGS_CHANGED = 39
Private Declare Sub UrlMkSetSessionOption Lib "urlmon.dll" (ByVal dwOption As Long, pbuffer As Any, ByVal dwBufferLength As Long, ByVal dwreserved As Long)
Private Type INTERNET_PROXY_INFO
    dwAccessType    As Long
    lpszProxy       As String
    lpszProxyBypass As String
End Type
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

'========================================
'函数名称:SetProxy
'函数作用:为本实例设置代理
'函数参数:比如SOCKS=127.0.0.1:1987
'========================================
Public Function SetProxy(ByVal Proxy As String)
    Dim options As INTERNET_PROXY_INFO
    options.dwAccessType = INTERNET_OPEN_TYPE_PROXY
    options.lpszProxy = Proxy
    options.lpszProxyBypass = ""
    InternetSetOption 0, INTERNET_OPTION_PROXY, options, LenB(options)
    InternetSetOption INTERNET_OPTION_SETTINGS_CHANGED, 0, 0, 0
End Function

posted @ 2010-02-15 07:31  猪悟能  阅读(1211)  评论(2编辑  收藏  举报