WebBrowser代理设置,可以根据IP,线程ID等设置代理,实现了多WebBrowser同时使用不同代理
2011-02-18 04:46
591 查看
本文原创,转载请注明出处
WebBrowser简单易用,少量代码可以实现不错的功能,但貌似没有一个完美的方法设置代理
可以设置全局代理,通过注册表或者函数修改IE代理,但这样无法实现同时多个WebBrowser使用不同代理,影响其他浏览程序的代理设置
使用过滤器有些复杂,对不不熟悉的人使用不方便
WebBrowser 浏览最终还是调用的Wininet
而Wininet 可以设置代理并且不影响全局,需要一个HINTERNET 句柄,GOOGLE了半天也没找到这个句柄是WebBrowser的哪个字段,逆向之发现WebBrowser根本没有存储这个句柄,而是在urlmon.dll的全局变量中,而且所有的WebBrowser都使用这一个根句柄
既然WebBrowser没有,那只有自己想办法了
HOOK InternetConnect,得到句柄直接设置代理,可以根据目标IP,或者线程ID来选择设置哪个代理
WebBrowser简单易用,少量代码可以实现不错的功能,但貌似没有一个完美的方法设置代理
可以设置全局代理,通过注册表或者函数修改IE代理,但这样无法实现同时多个WebBrowser使用不同代理,影响其他浏览程序的代理设置
使用过滤器有些复杂,对不不熟悉的人使用不方便
WebBrowser 浏览最终还是调用的Wininet
而Wininet 可以设置代理并且不影响全局,需要一个HINTERNET 句柄,GOOGLE了半天也没找到这个句柄是WebBrowser的哪个字段,逆向之发现WebBrowser根本没有存储这个句柄,而是在urlmon.dll的全局变量中,而且所有的WebBrowser都使用这一个根句柄
既然WebBrowser没有,那只有自己想办法了
HOOK InternetConnect,得到句柄直接设置代理,可以根据目标IP,或者线程ID来选择设置哪个代理
相关文章推荐
- DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网
- Fedora 10 静态IP设置,实现PC连上北理工校园网的同时,与虚拟机可以互ping
- 前端控制器是整个MVC框架中最为核心的一块,它主要用来拦截符合要求的外部请求,并把请求分发到不同的控制器去处理,根据控制器处理后的结果,生成相应的响应发送到客户端。前端控制器既可以使用Filter实现(Struts2采用这种方式),也可以使用Servlet来实现(spring MVC框架)。
- 2.使用synchronized关键字实现多线程的同步和互斥(不同线程同时读写同一数据)
- 记录:在使用 Adapter是对 item的点击设置,合并,不同布局实现
- ubuntu双网卡双IP设置并实现同时访问外网的功能
- 在xml布局文件中,我们既可以设置px,也可以设置dp(或者dip)。一般情况下,我们都会选择使用dp,这样可以保证不同屏幕分辨率的机器上布局一致。但是在代码中,如何处理呢?很多控件的方法中都只提供了
- linux 网络编程:使用两线程实现socket同时收发数据
- 在MFC GridCtrl中使用CGridCellCheck类根据GetCheck()状态做不同处理的实现
- 进程和线程的关系,同时如何使用Java实现
- 使用Web部件连接接口实现可以设置条件的过滤器
- spark-sql使用UDF函数实现ip映射省份,数据写出到mysql参数设置。
- java中有几种方法可以实现一个线程?用什么关键字修饰同步方法 stop()和suspend()方法为何不推荐使用?
- 使用SpringBoot整合Jersey 实现Restful webservice.可以同时使用springmvc。
- Atitit 三种并发编程模型 艾龙 attilax总结 1. 并发系统可以使用不同的并发模型去实现。 1 2. 并行工作者 并行工作者模型。进来的任务分配给不同的工作者 银行模式 2 2.1.
- idhttp 在delphi7下如何设置代理IP和Port
- Ubuntu 使用NAT方式设置与主机不同IP网段的静态IP
- WebRequest和WebBrowser同时登陆,使用同一个sessionID
- linux 网络编程:使用两线程实现socket同时收发数据