webbrowser代理c#代码实现

微软webbrowser控件也就是IE插件,他的所有功能就像IE类似,当然设置也是一样的,下面介绍下webbrowser如何设置代理,可不要用这个对抗广告联盟哦

You can change the proxy with InternetSetOption method from the wininet.dll,
here is a example to set the proxy:

using System.Runtime.InteropServices;

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

-------------------------------------------------------------------------------------------------------------------------------------

昨 天做的投票机遇到个新问题,昨天开始那个投票开始现在ip地址,每个地址只能投5票/天。如果每次更改ie的连接为代理服务器,那也麻烦死了,如
果改用webclient,那昨天的2个多小时就白费了,上网一通狂收还真找到了办法,这下好办了,建了一个proxy.txt文档,里面放上从网上收到
的代理服务器,然后程序读到一个listbox里面,每次需要更换ip的时候只要单击一次,就可以还一个地址重新投票了。 
附上proxy.cs 

using
System.Runtime.InteropServices;//需要添加这个引用 
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); 
public 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)); 
}

使用的时候,调用RefreshIESettings 
py.proxy py1 = new
proxy(); 
py1.RefreshIESettings(”221.4.155.51:3128″); 

webBrowser1.Navigate(”http://www.hfxsy.cn”,
null, null, null);

webbrowser代理c#代码实现,布布扣,bubuko.com

时间: 2024-10-12 16:22:06

webbrowser代理c#代码实现的相关文章

订阅发生异常代理消息代码 20598,个人总结

近期发现订阅出现奇怪的问题,异常为:"订阅发生异常代理消息代码 20598. 应用复制的命令时在订阅服务器上找不到该行".此错误在网上有各种各样的解决答案,个人觉得东搞搞西搞搞,最终还是解决不了实质问题.最终决定重新搭建该发生异常库的复制机制.手动将主库的备份片copy至备库上进行恢复操作.然后将基本创建对象创建完成后,再开始创建该库的复制机制.此时开启发布服务器上的复制监控,得知恢复正常.

Spring阶段性学习总结(十)AOP编程入门学习之动态代理实现代码的优化

1 public interface Calculator { 2 int add(int i, int j); 3 int sub(int i, int j); 4 int mul(int i, int j); 5 int div(int i, int j); 6 } 1 public class CalculatorImp implements Calculator{ 2 /* 3 * 如果在每个方法中添加想赢的输出日志,那么维护起来相当困难,而且, 4 * 代码结构也破坏了,掺杂了多余的非

静态代理模式代码演示

一.静态代理:增强行为1.真实角色2.代理角色+真实角色的引用3.代理行为要求实现相同的接口 1.接口,租赁行为 1 package com.wisezone.dailies; 2 3 /** 4 * 接口,租赁行为 5 * @author 王东海 6 * @2017年4月16日 7 */ 8 public interface Rent 9 { 10 /** 11 * 租赁 12 * void 13 */ 14 public void rent(); 15 } 2.真实角色类 1 package

(六)代理模式-代码实现

概念:为其他对象提供一种代理以控制对这个对象的访问. 使用场景:增加一个对象操作的访问控制,如根据权限判断用户是否能执行某个方法. 另一个应用是延迟加载,比如图片的对象,直到真正改变图片文件时才真正加载. 一个带访问控制的代理例子: //真正的执行对象 package note.com.proxy; /** * 可执行动作 * @author lxz * */ public class Action { public void doOne(){ System.out.println("One&q

golang语言爬虫代理的代码示例

package main import ( "net/url" "net/http" "bytes" "fmt" "io/ioutil" "math/rand" "time" "strconv" ) const ProxyServer = "t.16yun.cn:31111" type ProxyAuth struct { Us

IOS中在自定义控件(非视图控制器)的视图跳转中 代理方法与代码块的比较

//代码块与代替代理的设计方法 我就以在自定义视图中(非视图控制器,不能实现视图控制功能),通过代理和代码块两种方法分别实现视图的跳转,进行对比 首先自定义了一个视图,上面有一个已经注册了得BUtton点击监控事件方法-(void)event{};视图的跳转就在这个方法中实现(注意:这个button不在视图控制器里面,就算导了相关头文件,也不能跳转,所以只能通过代理方法,或者代码块等,在这个button(在自定义控件空,非视图控制器)方法中调用相关方法,在视图控制器中去实现) 代理实现方法: 在

《大话设计模式》ruby版代码:代理模式

需求: 小明让小李替他追小丽(送洋娃娃,送花,送巧克力) 没有代理的代码: # -*- encoding: utf-8 -*- #追求者类 class Pursuit attr_accessor :mm def initialize(mm) @mm = mm end def give_dolls puts "#{mm.name} 送你洋娃娃" end def give_flowers puts "#{mm.name} 送你鲜花" end def give_choco

VS C# .NET WebBrowser控件 利用插入JS代码,实现控制弹出IE窗口

最近在做一个客户端程序,使用到自带的WebBrowser控件时,发现当JS调用window.open()或a标签的target="_blank"时使用的是弹出IE窗口,不知道为什么是这种设计,根本不满足需求嘛.上网查了一下相关资料,发现这个控件并没有属性能控制这个功能,于是找第三方控件,发现也还是不行(可能是我不够仔细尝试),而且要多出个几十兆的DLL.经过我几个小时的努力,放弃了...! 知道C#是可以与网页的JS交互的,于是想到网页上重写window.open()的方法,建一个HT

[WP8开发] WebBrowser控件与后台代码.cs简单的交互

大前提:我目前测试的环境是Windows Phone 8.1 Silverlight,所以控件是WebBrowser,而不是WebView. 做项目可能要用到网页与后台代码的交互问题,因为可能考虑到跨平台问题,所以公司的网页里某些链接需要客户端自行处理. 有如下HTML示例代码(重要部分): 1 <!--列表标题--> 2 <div class="am-list-news-bd"> 3 <ul class="am-list"> 4