WebBrower使用 Http 代理访问网页

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)); 
        } 

        private void SomeFunc(string _ipAdd,string _url) 
        {
            RefreshIESettings(_ipAdd);
            System.Object nullObject = 0;
            string strTemp = String.Empty;
            System.Object nullObjStr = strTemp;
            //webBrowser1.Navigate("http://www.7y8.com/V/ip.asp", null, null, null); 
            webBrowser1.Navigate(_url, null, null, null);
            while (webBrowser1.ReadyState!=WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
                System.Threading.Thread.Sleep(100);
            }
        }

  PS:不知道从哪找来的了。

原文地址:https://www.cnblogs.com/malaohu/p/3214304.html