首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求证一个过程一个代理的实现方式,标题不长不显眼啊++

2013-12-15 
求证一个进程一个代理的实现方式,标题不长不显眼啊++本帖最后由 xiaozhu39505 于 2013-12-02 14:43:45 编

求证一个进程一个代理的实现方式,标题不长不显眼啊++
本帖最后由 xiaozhu39505 于 2013-12-02 14:43:45 编辑 大体需求是这样的,有一个主程序和执行任务的程序。
主程序可以启动多个执行任务的程序。执行任务的程序主要就是一个winform里有个webbrowser控件。要求实现每个执行任务的程序里的webbrowser都可以使用自己的代理IP去访问网页。多个执行任务的程序可以同时使用不同的代理。

我的思路是去hook执行任务程序的通信API,并修改通信的目的IP地址为代理IP,目前这是我唯一思路

我是做c#的,消息hook做过,对api hook不太了解,搜了不少资料,说是需要hook某个dll的方法,并且修改文件头让它跳转到我们写的方法里面。这种方式不知道C#好不好做。哎。。

或者大侠们有什么更好的实现思路,也不妨说说。在此谢谢了 API?HOOK webbrowser 每个进程单独代理
[解决办法]
不需要这样复杂吧,一般来说你会有一个UI事件触发Open URL的动作,之后它会去调用WebBrowser的Navigate方法实现页面的更新,这样你在UI事件触发的时候,去修改代理IP就可以了吧。

引用:
大体需求是这样的,有一个主程序和执行任务的程序。
主程序可以启动多个执行任务的程序。执行任务的程序主要就是一个winform里有个webbrowser控件。要求实现每个执行任务的程序里的webbrowser都可以使用自己的代理IP去访问网页。多个执行任务的程序可以同时使用不同的代理。

我的思路是去hook执行任务程序的通信API,并修改通信的目的IP地址为代理IP,目前这是我唯一思路

我是做c#的,消息hook做过,对api hook不太了解,搜了不少资料,说是需要hook某个dll的方法,并且修改文件头让它跳转到我们写的方法里面。这种方式不知道C#好不好做。哎。。

或者大侠们有什么更好的实现思路,也不妨说说。在此谢谢了

[解决办法]
看看QT的webkit控件有没有相关方法,那个是开源的,看看能不能改改。
[解决办法]
提醒:IE代理只对当前用户是全局的,而一台电脑可以同时登录好多个用户。
[解决办法]
CreateProcessAsUser



C:\>net help user
此命令的语法是:


NET USER
[username [password 
[解决办法]
 *] [options]] [/DOMAIN]
         username {password 
[解决办法]
 *} /ADD [options] [/DOMAIN]
         username [/DELETE] [/DOMAIN]

NET USER 用于创建和修改计算机上的用户帐户。当不带选项使用本命令时,
它会列出计算机上的用户帐户。用户帐户的信息存储在用户帐户数据库中。

该命令仅在服务器上运行。


username     指需要进行添加、删除、修改或者浏览的用户帐户的名字。用户帐
             户的名字不能超过 20 个字符。
password     分配或改变用户帐户的密码。密码必须满足 NET ACCOUNTS 命令的
             /MINPWLEN 选项指定的最小长度的要求。它至多可以具有 14 个字符。
*            提示输入密码。当用户在密码提示符下输入时,密码是不会显示的。
/DOMAIN      在当前域的主域控制器上执行操作。
/ADD         将用户帐户添加到用户帐户数据库中。
/DELETE      从用户帐户数据库中删除用户帐户。

Options      如下所示:

   Options                    描述
   --------------------------------------------------------------------
   /ACTIVE:{YES 
[解决办法]
 NO}         激活或停用帐户。如果帐户处于停用状态,用户
                              就不能访问该服务器。该选项的默认值是 YES。
   /COMMENT:"text"            提供关于用户帐户的一个描述性注释。需要将文本
                              括在引号中。
   /COUNTRYCODE:nnn           使用操作系统的国家/地区代码来实施用户的帮助
                              和错误消息的特定语言文件。0 表示默认的国家/地
                              区代码。
   /EXPIRES:{date 
[解决办法]
 NEVER}    如果日期被设置,就会引起帐户过期。设置NEVER,
                              对帐户就没有时间上的限制。根据国家/地区代码的
                              不同,有效日期的格式可以是月/日/年或日/月/年。
                              月可以是一个数字,拼写完整的或三个字母的缩写。


                              年可以是两位或四位数字。使用斜线(/)(没有空格)
                              来分隔日期的各个部分。
   /FULLNAME:"name"           是一个用户的完整名字(而不是用户名)。需要把名字
                              用引号括起来。
   /HOMEDIR:pathname          设置用户的主目录的路径。路径必须已经存在。
   /PASSWORDCHG:{YES 
[解决办法]
 NO}    指定用户是否可以改变自己的密码。其默认值是 YES。
   /PASSWORDREQ:{YES 
[解决办法]
 NO}    指定用户的帐户是否必须具有密码。其默认值是 YES。
   /PROFILEPATH[:path]        为用户的登录配置文件设置路径。
   /SCRIPTPATH:pathname       指用户的登录文件所在的位置。
   /TIMES:{times 
[解决办法]
 ALL}       指用户可以登录的时间。TIMES 的表达方式是
                              day[-day][,day[-day]],time[-time][,time[-time]],
                              增量限制在 1 小时。天可以是全部拼写或缩写。小时
                              可以是 12 小时或 24 小时制。对于 12 小时制,可
                              以使用 AM,PM。ALL 表示用户总是可以登录。空值表
                              示用户永远不能登录。可以使用逗号分隔天和时间项,
                              并用分号分隔多个天和时间项。
   /USERCOMMENT:"text"        让管理人员添加或改变帐户的用户注释。
   /WORKSTATIONS:{computername[,...] 
[解决办法]
 *}
                              列出至多8个用户可以登录到网络上的计算机。
                              如果 /WORKSTATIONS 没有列表或列表是 *,
                              用户就可以从任何一台计算机上登录。

NET HELP command 
[解决办法]
 MORE 用于逐屏显示帮助。


[解决办法]
Qt的QNetworkAccessManager类支持设置proxy
[解决办法]
一般浏览器插件(无论IE、webkit、gecko)都会给你个机会让你负责所有http通信的,比如二楼说的Navigate之类的。这样你就可以为所欲为了。

热点排行