C# Webbrowser控件在代理旋转时无法正常工作

C# Webbrowser控件在代理旋转时无法正常工作,c#,winforms,visual-studio-2010,webbrowser-control,C#,Winforms,Visual Studio 2010,Webbrowser Control,我正在使用许多ipz,并一个接一个地使用它们,一些在一段时间后重复,一些在几秒钟内使用此代码: string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings"; RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true); RegKey.SetValue("ProxyServer", proxy); RegKey.

我正在使用许多ipz,并一个接一个地使用它们,一些在一段时间后重复,一些在几秒钟内使用此代码:

  string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";

  RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);

  RegKey.SetValue("ProxyServer", proxy);

  RegKey.SetValue("ProxyEnable", 1);

  webBrowser1.Navigate(customLinks[0].ToString());
问题是它并不总是成功,因为我注意到很多次。假设一个ip被阻止,所以它需要下一个,但我仍然看到下一个,甚至下一个阻塞

所以,假设它不采取代理这么快等?也许它需要刷新。请让我知道如何实现这一点


谢谢

听起来您需要在浏览器中设置一个代理,然后自己实现该代理,这样它可以将请求旋转到您的代理列表中。

我从谷歌上获得了很多帮助,但不记得确切的链接:

下面是代码,我调用刷新函数并传递代理,它在任何时候都能100%工作

public struct Struct_INTERNET_PROXY_INFO
    {
        public int dwAccessType;
        public IntPtr proxy;
        public IntPtr proxyBypass;
    };

    [DllImport("wininet.dll", SetLastError = true)] 
    private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);

    private void RefreshIESettings(string strProxy)
    {
        const int INTERNET_OPTION_PROXY = 38;
        const int INTERNET_OPEN_TYPE_PROXY = 3;

        Struct_INTERNET_PROXY_INFO struct_IPI;



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

        // Allocating memory
        IntPtr intptrStruct = Marshal.AllocCoTaskMem(Marshal.SizeOf(struct_IPI));

        // Converting structure to IntPtr
        Marshal.StructureToPtr(struct_IPI, intptrStruct, true);

        bool iReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));


    } 

我不明白这一点,请你解释一下,写一个HTTP代理。仅将浏览器指向该代理。对代理进行编程以通过列表中的代理发出请求。或者,您可以重新调整现有实现的用途,例如::|…我的实现不可能保持不变并正常工作吗?您也可以提供上述示例。