使用代理与web浏览器控制C#/。NET 3.5(Use a proxy with webBrows

2019-06-27 04:20发布

我需要从别人谁已经连同proxys使用WebBrowser控件一些帮助。

我需要的是以下几点。

1 - 设置一个WebBrowser控件的代理。 2 - 加载特定的网站。 3 - 执行例行过来的网站。 4 - 设置WebBrowser控件一个diferent代理。 5 - 加载另一个站点。 6 - 执行从点号3的相同程序。

而过程保持以这种方式,从proxys列表循环,直到所有的人都已经被使用。

但。 我有一些问题的应用程序。 要做到这一点:

1 - 我使用连接到设置代理到WebBrowser控件的代码,但似乎在执行过程中只有一次的工作,当我在循环再次调用它,它只是不工作,我可以牛逼ounderstand原因。

2 - 我有问题,以确定何时页面完全加载,我的意思是,当我设置第一个网站的加载,我需要的程序要等到它完成加载,之后执行例行过吧,并继续处理。

希望有人能帮助我解决这个...

///我使用的功能-----------------------------

    private void SetProxy(string Proxy)
    {

        MessageBox.Show("Setting :" + Proxy);
        string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";

        RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
        RegKey.SetValue("ProxyServer", Proxy);
        RegKey.SetValue("ProxyEnable", 1);

    }

//该应用程序逻辑--------------------------------------

        SetProxy("190.97.219.38:80");
        webBrowser1.Navigate("http://www.whatismyip.com/");
        ExecuteRoutine();

        SetProxy("187.93.77.235:80");
        webBrowser1.Navigate("http://www.whatismyip.com/");
        ExecuteRoutine();

        SetProxy("109.235.49.243:80");
        webBrowser1.Navigate("http://www.whatismyip.com/");
        ExecuteRoutine();

Answer 1:

也许这种联系是有益的:

http://blogs.msdn.com/b/jpsanders/archive/2011/04/26/how-to-set-the-proxy-for-the-webbrowser-control-in-net.aspx

我测试的代码和它似乎工作。 但有两点非常重要:

  • 这是在编译模式项目“任何CPU”不兼容(X86正常工作)
  • 只是HTTP代理服务器; 不是SOCKS


Answer 2:

1 - 我猜的WebBrowser控件只检查,而其创建代理,所以设置代理后,创建一个新的控制

2-导航是不是一个阻塞调用,并且不等到页面加载它,使用webBrowser.DocumentCompleted事件

下面的代码应该工作(未测试)

void Exec(string proxy,string url)
{
    var th = new Thread(() =>
    {
        SetProxy(proxy);
        using (WebBrowser wb = new WebBrowser())
        {
            wb.DocumentCompleted += (sndr, e) =>
            {
                ExecuteRoutine();
                Application.ExitThread();
            };
            wb.Navigate(url);
            Application.Run();
        }
    });
    th.SetApartmentState(ApartmentState.STA);
    th.Start();
    th.Join();
}


Answer 3:

我有一个有点类似的问题在过去。 在接受答案的问题,建议去看看这Microsoft知识库文章在:

“ 如何以编程方式查询和在Internet Explorer中设置代理服务器设置 ”

基本上,你必须做一些P / Invoke并调用一些DLL的WinInet功能。 虽然我从来没有在现实世界中的项目试了一下,我强烈认为这是要走的路。



Answer 4:

只是为了让大家都知道,这家伙已经发布了5个问题,都问同样的事情,并根据他的第一个问题有多严重,他被撞倒,好像他正试图作出某种类型的网络犯罪。 现在,根据我自己的智慧读书,他可能会在监狱里最终真的很快,但我只是想我们也许能救他从通过让他知道,这是不可能提供一个假想的IP地址服务您通信(因为如果你这样做,该服务将无法达到您提供的响应)。 这里是他的娱乐性列表:

https://stackoverflow.com/questions/12045317/how-to-hide-my-ip-address-c-net-3-5

使用代理与web浏览器控制C#/。NET 3.5

如何通过IP地址来webBrowser控件

如何使用自定义的IP地址,浏览网页C#/。NET

https://stackoverflow.com/questions/12019890/how-to-load-webpage-using-user-provided-ipaddress-webbrowser-control-c-net

而现在,我认为他已经下面创建一个新的用户名,user1563019,与更多的代理/设置问题: https://stackoverflow.com/users/1563019/user1563019



文章来源: Use a proxy with webBrowser control C#/.net 3.5