您的位置:首页 > 编程语言 > VB

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

2010-02-15 07:31 603 查看
在《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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: