关于webBrowser使用代理的问题 [已结贴,结贴人:liuyh83]

来源:互联网 发布:华硕最优化设置 编辑:程序博客网 时间:2024/05/16 17:00
关于webBrowser使用代理的问题 [已结贴,结贴人:liuyh83]
进入用户个人空间
加为好友
发送私信
在线聊天
  • liuyh83
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
  • 揭贴率:
发表于:2008-07-18 05:56:54 楼主
C# code
[DllImport("wininet.dll", SetLastError = true, CharSet = CharSet.Auto,EntryPoint = "InternetSetOption",CallingConvention = CallingConvention.StdCall)] public static extern bool InternetSetOption(int hInternet, int dwoption, object lpbuffer, int dwbufferlength); private const int INTERNET_OPTION_PROXY = 38; private const int INTERNET_OPTION_PROXY_PASSWORD = 44; private const int INTERNET_OPTION_PROXY_USERNAME = 43; private const int INTERNET_OPEN_TYPE_PROXY = 3; [StructLayout(LayoutKind.Sequential)] public struct INTERNET_PROXY_INFO { public int dwAccessType; public string lpszProxy; public string lpszProxyBypass; } public void SetSockect() { INTERNET_PROXY_INFO op=new INTERNET_PROXY_INFO() ; op.dwAccessType = INTERNET_OPEN_TYPE_PROXY; op.lpszProxy = "SOCKS=59.188.125.8:3370"; op.lpszProxyBypass = ""; string Username="ma"; string Password="zsi"; try { InternetSetOption(0, INTERNET_OPTION_PROXY, op, Marshal.SizeOf(op));//每次执行到这里就出现-->值不在预期的范围内的错误 //InternetSetOption(webBrowser1.Handle.ToInt32(), INTERNET_OPTION_PROXY, null,0); InternetSetOption(webBrowser1.Handle.ToInt32(), INTERNET_OPTION_PROXY_USERNAME,Username, Username.Length); InternetSetOption(webBrowser1.Handle.ToInt32(), INTERNET_OPTION_PROXY_PASSWORD, Password, Password.Length); } catch (Exception e) { textBox1.Text = e.ToString(); } }


InternetSetOption(0, INTERNET_OPTION_PROXY, op, Marshal.SizeOf(op));//每次执行到这里就出现-->值不在预期的范围内的错误 20  修改删除举报引用回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • zhiguo2008
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2008-07-18 08:18:281楼 得分:0 友情帮顶 修改删除举报引用回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • hongqi162
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
  • 14

发表于:2008-07-18 08:20:562楼 得分:20
C# code
http://www.codeprof.com/dev-archive/66/9-31-662586.shtmPublic 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() { RefreshIESettings("192.168.1.200:1010"); System.Object nullObject = 0; string strTemp = String.Empty; System.Object nullObjStr = strTemp;axWebBrowser1.Navigate("http://willstay.tripod.com", ref nullObject, ref nullObjStr, ref nullObjStr, ref nullObjStr); }
修改删除举报引用回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • woaixingqiliu
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2008-07-18 08:57:163楼 得分:0 该回复于2008-07-18 10:49:10被版主删除 修改删除举报引用回复
进入用户个人空间
加为好友
发送私信
在线聊天
  • liuyh83
  • 等级:
  • 可用分等级:
  • 总技术分:
  • 总技术分排名:
发表于:2008-07-18 15:02:424楼 得分:0 感谢二楼的回答.我还有个问题我的程序错在那里.为什么会出现值不在预期的范围内的错误呢