2015-02-23 38 views
0

所以基本上我已經得到了這些代碼,並且當它觸發WebBrowser1.navigating時將它用作事件監聽器,因此它將在每個導航中使用代理, 沒有例外。WebBrowser如何使用私人代理ID:通

唯一的問題是,我不知道如何修改使用基於ID的私人代理代碼:通過

#Region "Using Proxy" 
<Runtime.InteropServices.DllImport("wininet.dll", SetLastError:=True)> _ 
Private Shared Function InternetSetOption(ByVal hInternet As IntPtr, ByVal dwOption As Integer, ByVal lpBuffer As IntPtr, ByVal lpdwBufferLength As Integer) As Boolean 
End Function 

Public Structure Struct_INTERNET_PROXY_INFO 
    Public dwAccessType As Integer 
    Public proxy As IntPtr 
    Public proxyBypass As IntPtr 
End Structure 

Private Sub UseProxy(ByVal strProxy As String) 
    Const INTERNET_OPTION_PROXY As Integer = 38 
    Const INTERNET_OPEN_TYPE_PROXY As Integer = 3 

    Dim struct_IPI As Struct_INTERNET_PROXY_INFO 

    struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY 
    struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy) 
    struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local") 

    Dim intptrStruct As IntPtr = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI)) 

    Marshal.StructureToPtr(struct_IPI, intptrStruct, True) 

    Dim iReturn As Boolean = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, System.Runtime.InteropServices.Marshal.SizeOf(struct_IPI)) 
End Sub 
#End Region 

這是代碼片段我使用的地方,我需要它:

Private Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating 
    UseProxy(TextBox3.Text & ":" & TextBox4.Text) 
End Sub 

我敢肯定,這個解決方案非常簡單,只是它避免了我瘋狂的VB技能!

+0

重複http://stackoverflow.com/questions/23767475/how-can-i-set-a-proxy-with-實現認證authentication-username-password-on-the-webbrowse – 2015-02-23 13:20:21

+0

and again http://www.blackhatworld.com/blackhat-seo/visual-basic-net/385225-vbulletin-help-needed-proxies.html – 2015-02-23 13:21:44

+0

最佳答案I have發現http://stackoverflow.com/a/300738/2319909 – 2015-02-23 13:28:04

回答