调用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
'========================================
'声明作用:为本实例设置代理
'========================================
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
相关文章推荐
- arcgis js api调用SOE 设置代理后 调用报No 'Access-Control-Allow-Origin' header is present on the requested ...
- [VB.NET]调用API获取/设置键盘按键状态
- Java 调用 Rest api 设置经典 Linux 虚拟机的实例启停
- Java 调用 Rest api 设置经典 Linux 虚拟机的实例启停
- Java 调用 Rest api 设置经典 Linux 虚拟机的实例启停
- Java 调用 Rest api 设置经典 Linux 虚拟机的实例启停
- C#调用win32 api程序实例
- 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例
- ABAP--一个极好的调用外部java程序的Search Help Exit的实例(RFC好例子)
- VB Shell调用后 等待程序运行结束
- 桌面程序调用Web Service应用实例
- VB.NET调用Windows API函数 方法 (实例)
- Google Chrome Protable 版设置为默认浏览器后,外部程序调用问题
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- Android 反射、代理调用系统隐藏API方法与接口类连接Wi-Fi
- ring3层程序调用ring0层API
- 调用web服务的代理设置问题
- SOCKET API和TCP STATE的对应关系__三次握手(listen,accept,connect)__四次挥手close及TCP延迟确认(调用一次setsockopt函数,设置TCP_QUI
- Java 中调用 Apache API 实现图片文件的 压缩 与 解压 实例
- googleMap API及调用实例