Несколько элементов управления Webbrowser, работающих с разными прокси - PullRequest
0 голосов
/ 31 января 2011

Я пытаюсь запустить определенный тест на моем сервере, используя программу, которая может выполнять несколько запросов (с использованием элемента управления Webbrowser) одновременно, но с разными настройками прокси. То, что я сейчас использую, работает, но только для одного элемента управления веб-браузера, я ищу совет о том, как запустить несколько бок о бок.

 <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 RefreshIESettings(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

    ' Filling in structure
    struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_PROXY
    struct_IPI.proxy = Marshal.StringToHGlobalAnsi(strProxy)
    struct_IPI.proxyBypass = Marshal.StringToHGlobalAnsi("local")

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

    ' Converting structure to IntPtr
    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

Private Function loadpage()
    sInputLine = srFileReader.ReadLine()
    Debug.WriteLine("Starting Proxy " & sInputLine)
    RefreshIESettings(sInputLine)
    Timer1.Enabled = True
    Timer1.Interval = My.Settings.timeout * 1000
    'set label
    Label3.Text = "Attempting: " & sInputLine
    Label3.ForeColor = Color.Black
    Label3.Visible = True
    WebBrowser1.Navigate("http://www.MYSERVER.com")
    Return True
End Function

Loadpage () зацикливается из таймера в событии DocumentCompleted.

Пожалуйста, помогите, я искал-дни- для решения.

1 Ответ

0 голосов
/ 31 января 2011

Не могу помочь вам с самим элементом управления веб-браузера, но вы можете вручную извлечь удаленный контент, используя HttpWebRequest со свойством Proxy. http://msdn.microsoft.com/en-us/library/system.net.httpwebrequest.proxy.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...