C# 为WebBrowser设置代理,打开网页
来源:互联网 发布:java 异步日志 编辑:程序博客网 时间:2024/04/28 21:46
WebBrowser控件是基于IE浏览器的,所以它的内核功能是依赖于IE的,相信做.NET的人都知道。
今天的主题,和上一篇文章应该是差不多的,都是通过代理来实现功能的。
请看下面的代码:
//1.定义代理信息的结构体
public struct Struct_INTERNET_PROXY_INFO
{
public int dwAccessType;
public IntPtr proxy;
public IntPtr proxyBypass;
};
//You can change the proxy with InternetSetOption method from the wininet.dll, here is a example to set the proxy
//这个就是设置一个Internet 选项,其实就是可以设置一个代理
[DllImport("wininet.dll", SetLastError = true)]
private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength);
//设置代理的方法
//strProxy为代理IP:端口
private void InternetSetOption(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
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));
if (string.IsNullOrEmpty(strProxy) || strProxy.Trim().Length == 0)
{
strProxy = string.Empty;
struct_IPI.dwAccessType = INTERNET_OPEN_TYPE_DIRECT;
}
// 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 button1_Click(object sender, EventArgs e)
{
InternetSetOption("192.168.6.218:3128");
webBrowser1.Navigate("http://www.baidu.com", null, null, null);
}
上面是代码是设置代理,要是取消代理怎么实现?
很简单,把调用InternetSetOption(string strProxy) 函数中的strProxy参数设置为空就行了。
例如:
private void button2_Click(object sender, EventArgs e)
{
InternetSetOption(string.Empty);
webBrowser1.Navigate("http://www.baidu.com", null, null, null);
}
- C# 为WebBrowser设置代理,打开网页
- C# 为WebBrowser设置代理,打开网页
- C# webBrowser 通过代理访问网页
- C# winform WebBrowser 让网页在内部打开
- C# WebBrowser强制使新窗口网页只在WebBrowser打开
- C# WebBrowser强制使新窗口网页只在WebBrowser打开
- C# WebBrowser强制使新窗口网页只在WebBrowser打开
- C# WebBrowser强制使新窗口网页只在WebBrowser打开
- C# WebBrowser 设置代理完全解决方案【转贴】
- C# WebBrowser 设置代理完全解决方案
- C# WinForm WebBrowser 设置为编辑模式
- C#点击打开webbrowser中网页中的超链接
- C# webbrowser 代理
- C# webbrowser中新窗口在Webbrowser内打开屏蔽网页JS错误
- C# webbrowser中新窗口在Webbrowser内打开屏蔽网页JS错误
- C# webbrowser中新窗口在Webbrowser内打开屏蔽网页JS错误
- webbrowser屏蔽打开新网页
- C#中设置webBrowser为可编辑模式
- Genesis-3D学习手册——5.发布运行
- HDU 1004
- winpcap 获取数据链路层类型
- COM(组件对象模型)简单介绍
- powerdesigner,使用技巧
- C# 为WebBrowser设置代理,打开网页
- Back of the Envelope Calculations
- iOS应用开发最佳实践:编写高质量的Objective-C代码
- 哎哟行行好啊让我收啊
- WSDL 详解
- Oracle物化视图2 -- Query Rewrite及参数
- JAVA集集合类
- Histograms of Oriented Gradients for Human Detection
- iOS开发:从新手到专家的一些建议