显示列表

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

       /// <summary>
       /// 刷新IE代理设置
       /// </summary>
       /// <param name="strProxy">格式如:61.56.55.154:80</param>
       public static void RefreshIESettings(string strProxy)
       {
           const int INTERNET_OPTION_PROXY = 38;
           const int INTERNET_OPEN_TYPE_PROXY = 3;
           const int INTERNET_OPEN_TYPE_DIRECT = 1;
           Struct_INTERNET_PROXY_INFO struct_IPI;
           // Filling in structure
           if (String.IsNullOrEmpty(strProxy)) struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
           else 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));
       }

使用方法:
使用代理:RefreshIESettings("151.222.250.180:80");
取消代理:RefreshIESettings("");
已测试过可以用

标签:WebBrowser 
返回摘要 | 分类(Asp.Net) | 访问(0) | 编辑