积极答复者
Webbrowser如何设置代理

问题
答案
全部回复
-
-
feiyun0112 写: http://www.j2soft.cn/article/2008/1121/article_436.html 谢谢:)
-
abcjackson 写: feiyun0112 写: http://www.j2soft.cn/article/2008/1121/article_436.html 谢谢:)
似乎System.Net.WebProxy类是可以的
http://msdn.microsoft.com/zh-cn/vstudio/system.net.webproxy(VS.80).aspx
具体的不太清楚.....
-
Kaedei 写: abcjackson 写: feiyun0112 写: http://www.j2soft.cn/article/2008/1121/article_436.html 谢谢:)
似乎System.Net.WebProxy类是可以的
http://msdn.microsoft.com/zh-cn/vstudio/system.net.webproxy(VS.80).aspx
具体的不太清楚.....
-
feiyun0112 写: http://www.j2soft.cn/article/2008/1121/article_436.html 今天我特别试了这段代码,在VB2008下似乎不管用.
Code SnippetModule AgentForWebBrowser
Private Structure INTERNET_PROXY_INFO
Dim dwAccessType As Long, _
lpszProxy As String, _
lpszProxyBypass As String
End StructurePrivate Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const INTERNET_OPTION_PROXY = 38
Private Const INTERNET_OPTION_SETTINGS_CHANGED = 39Private Declare Function InternetSetOption Lib "wininet.dll" Alias "InternetSetOptionA" _
(ByVal hInternet As Long, ByVal dwOption As Long, _
ByVal lpBuffer As Object, _
ByVal dwBufferLength As Long) As LongPublic Sub SetProxy(ByVal aStrIP As String, ByVal aStrPort As String, ByVal aBolUseProxy As Boolean)
Dim strProxy As String
Dim inf As INTERNET_PROXY_INFOaStrIP = Trim(aStrIP)
aStrPort = Trim(aStrPort)
If (aStrIP + aStrPort = "") Or Not aBolUseProxy Then
strProxy = ""
Else
strProxy = "http://" + aStrIP + ":" + aStrPort
End IfIf Trim(strProxy) <> "" Then
inf.dwAccessType = INTERNET_OPEN_TYPE_PROXY
inf.lpszProxy = strProxy
inf.lpszProxyBypass = ""Call InternetSetOption(0, INTERNET_OPTION_PROXY, inf, Len(inf))
Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, "", 0)
Else
inf.dwAccessType = INTERNET_OPEN_TYPE_DIRECT
inf.lpszProxy = ""
inf.lpszProxyBypass = ""Call InternetSetOption(0, INTERNET_OPTION_PROXY, inf, Len(inf))
Call InternetSetOption(0, INTERNET_OPTION_SETTINGS_CHANGED, "", 0)
End If
End Sub
End Module在程序启动时,MyBase.Load事件中添加代码
Code Snippet'设置代理服务器
SetProxy("115.45.10.159", "8080", True)但是运行后,在Webbrowser控件中载入网页还是无法连接显示页面
是不是我哪个地方弄错了呢?
请指点一下,谢谢:)
-
Module AgentForWebBrowser Private Structure INTERNET_PROXY_INFO Dim dwAccessType As Int32, _ lpszProxy As String, _ lpszProxyBypass As String End Structure Private Const INTERNET_OPEN_TYPE_DIRECT = 1 Private Const INTERNET_OPEN_TYPE_PROXY = 3 Private Const INTERNET_OPTION_PROXY = 38 Private Const INTERNET_OPTION_SETTINGS_CHANGED = 39 <Runtime.InteropServices.DllImport("wininet.dll")> _ Private Function InternetSetOption(ByVal hInternet As IntPtr, _ ByVal dwOption As Int32, _ <System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.AsAny)> ByVal lpBuffer As Object, _ ByVal dwBufferLength As Int32) As Boolean End Function Public Sub SetProxy(Optional ByVal ProxyStr As String = "", Optional ByVal ProxyBypass As String = "") Static ProxyInfo As INTERNET_PROXY_INFO If Trim(ProxyStr) = "" Then ProxyInfo.dwAccessType = INTERNET_OPEN_TYPE_DIRECT ProxyInfo.lpszProxy = "" ProxyInfo.lpszProxyBypass = "" Else ProxyInfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY ProxyInfo.lpszProxy = ProxyStr ProxyInfo.lpszProxyBypass = Trim(ProxyBypass) End If Call InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, ProxyInfo, System.Runtime.InteropServices.Marshal.SizeOf(ProxyInfo)) Call InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, "", 0) End Sub Public Sub SetProxy(ByVal ProxyType As String, ByVal IP As String, ByVal Port As String, Optional ByVal ProxyBypass As String = "") SetProxy(Trim(ProxyType) + "://" + Trim(IP) + ":" + Trim(Port), ProxyBypass) End Sub End Module
试一下这段代码吧,主要是DLL声明的问题。- 已编辑 abcjackson 2009年6月16日 10:59
-
Module AgentForWebBrowser Private Structure INTERNET_PROXY_INFO Dim dwAccessType As Int32, _ lpszProxy As String, _ lpszProxyBypass As String End Structure Private Const INTERNET_OPEN_TYPE_DIRECT = 1 Private Const INTERNET_OPEN_TYPE_PROXY = 3 Private Const INTERNET_OPTION_PROXY = 38 Private Const INTERNET_OPTION_SETTINGS_CHANGED = 39 <Runtime.InteropServices.DllImport("wininet.dll")> _ Private Function InternetSetOption(ByVal hInternet As IntPtr, _ ByVal dwOption As Int32, _ <System.Runtime.InteropServices.MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.AsAny)> ByVal lpBuffer As Object, _ ByVal dwBufferLength As Int32) As Boolean End Function Public Sub SetProxy(Optional ByVal ProxyStr As String = "", Optional ByVal ProxyBypass As String = "") Static ProxyInfo As INTERNET_PROXY_INFO If Trim(ProxyStr) = "" Then ProxyInfo.dwAccessType = INTERNET_OPEN_TYPE_DIRECT ProxyInfo.lpszProxy = "" ProxyInfo.lpszProxyBypass = "" Else ProxyInfo.dwAccessType = INTERNET_OPEN_TYPE_PROXY ProxyInfo.lpszProxy = ProxyStr ProxyInfo.lpszProxyBypass = Trim(ProxyBypass) End If Call InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, ProxyInfo, System.Runtime.InteropServices.Marshal.SizeOf(ProxyInfo)) Call InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, "", 0) End Sub Public Sub SetProxy(ByVal ProxyType As String, ByVal IP As String, ByVal Port As String, Optional ByVal ProxyBypass As String = "") SetProxy(Trim(ProxyType) + "://" + Trim(IP) + ":" + Trim(Port), ProxyBypass) End Sub End Module
你好,我现在也碰到了这个问题,但你能告诉我到底怎么使用吗?我在模块中添加了你上面的代码,然后在form的load中用 SetProxy("192.168.1.10", "8080", True),并没有成功,肯请指教。
说到更要做到,要做就做最好