2011-01-31 4 views
0

동시에 다른 프록시 설정을 사용하여 (웹 브라우저 컨트롤을 사용하여) 여러 요청을 실행할 수있는 프로그램을 사용하여 서버에서 특정 테스트를 실행하려고합니다. 지금 사용하고있는 것은 하나의 웹 브라우저 컨트롤에 대해서만 작동합니다. 여러 개의 side-by-side 실행 방법에 대한 조언을 구하고 있습니다.다른 프록시를 사용하여 실행중인 여러 웹 브라우저 컨트롤

<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 이벤트의 타이머에서 반복되고 있습니다.

도와주세요. 제가 해결책을 찾았습니다.

+0

InternetSetOption()에 IntPtr.Zero를 전달하면 컴퓨터 와이드 설정이 변경됩니다. Internet Explorer가 각 세션마다 해당 옵션을 변경하는 데 사용하는 HINTERNET 핸들을 얻어야합니다. 그건 가능하지 않습니다. 노출시키지 마십시오. –

답변

관련 문제