标签:
其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了
但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧。
这个其实是调用一个Dll文件进行设置的,
下面大家跟我一起来看看吧
首先还是要先建一个结构就是代理信息的结构体
如下
| 01 02 03 04 05 06 07 08 09 | /// <summary>   /// 代理结构体   /// </summary>   publicstructStruct_INTERNET_PROXY_INFO   {       publicintdwAccessType;       publicIntPtr proxy;//IP以及端口号       publicIntPtr proxyBypass;   }; | 
下面是如何 设置代理 的具体实现
| 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | /// <summary>        /// 设置代理的Api        /// </summary>        /// <returns></returns>        [DllImport("wininet.dll", SetLastError = true)]        privatestaticexternboolInternetSetOption(IntPtr hInternet, intdwOption, IntPtr lpBuffer, intlpdwBufferLength);        /// <summary>        /// 代理IP以及端口号        /// </summary>        /// <param name="strProxy"></param>        privatevoidRefreshIESettings(stringstrProxy)        {            constintINTERNET_OPTION_PROXY = 38;            constintINTERNET_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);            booliReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_PROXY, intptrStruct, Marshal.SizeOf(struct_IPI));        } | 
使用的时候也非常的简单
| 01 02 | RefreshIESettings("41.129.53.227:80");webBrowser1.Navigate("http://www.sufeinet.com"); | 
这样就可以了。
好了大家自己试试吧。
标签:
原文地址:http://www.cnblogs.com/waw/p/5970826.html