博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#webBrowser使用代理服务器的方法winform
阅读量:6592 次
发布时间:2019-06-24

本文共 1602 字,大约阅读时间需要 5 分钟。

其实在C#中使用webBrowser大家应该都会了,论坛也有很多相前的例子大家可以查询一下就知道了

但是像直接使用浏览器一样设置代理 的方法可能很多人还不知道吧。
这个其实是调用一个Dll文件进行设置的,
下面大家跟我一起来看看吧
首先还是要先建一个结构就是代理信息的结构体
如下

[C#] 
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
/// <summary>
   
/// 代理结构体
   
/// </summary>
   
public
struct
Struct_INTERNET_PROXY_INFO
   
{
       
public
int
dwAccessType;
       
public
IntPtr proxy;
//IP以及端口号
       
public
IntPtr proxyBypass;
   
};

下面是如何 设置代理 的具体实现

[C#] 
纯文本查看 复制代码
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
)]
        
private
static
extern
bool
InternetSetOption(IntPtr hInternet,
int
dwOption, IntPtr lpBuffer,
int
lpdwBufferLength);
 
        
/// <summary>
        
/// 代理IP以及端口号
        
/// </summary>
        
/// <param name="strProxy"></param>
        
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));
        
}

使用的时候也非常的简单

[C#] 
纯文本查看 复制代码
01
02
RefreshIESettings(
"41.129.53.227:80"
);
webBrowser1.Navigate(
"http://www.sufeinet.com"
);

这样就可以了。
好了大家自己试试吧。

转载地址:http://iedio.baihongyu.com/

你可能感兴趣的文章
建立Git版本库管理框架例子
查看>>
nginx防止部分DDOS攻击
查看>>
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字......
查看>>
number_format() 函数定义和用法
查看>>
Java8中聚合操作collect、reduce方法详解
查看>>
查看记录
查看>>
mybatis报ORA-00911: 无效字符
查看>>
Swift UIView动画animateWithDuration
查看>>
Maven 集成Tomcat插件
查看>>
css中的line-height问题
查看>>
我的友情链接
查看>>
Linux运维学习笔记之二:常用命令1
查看>>
snort安装常见问题及解决方法
查看>>
在ubuntu系统安装jdk
查看>>
很久没写了
查看>>
我的友情链接
查看>>
Cacti部署SOP
查看>>
Extjs - Panel组件
查看>>
收集参数及反转过程
查看>>
PPTP××× 数据分流
查看>>