GoobyGuy1 Ответов: 1

Почему мои настройки управления webbrowser не меняются вместе с настройками редактора реестра?


Поэтому я пытаюсь подключиться к интернету с помощью моего элемента управления WebBrowser в C#, и что я делаю, так это меняю редактор реестра, чтобы изменить настройки прокси-сервера в Internet Explorer, но на самом деле он не применяет прокси-сервер до тех пор, пока я не перезапущу приложение. Например..

1. Я запустить приложение и подключиться с текущими настройками прокси-сервера
2. я меняю настройки, пока приложение еще открыто (я делаю это вручную, а не в приложении)
3. я удостоверяюсь, что настройки изменились в Редакторе реестра (и это произошло)
4. я перезагружаю функцию загрузки, нажав кнопку загрузки.
5. И все тот же прокси IP, как в первый раз я запустил приложение.


Как мне сделать так, чтобы, если я изменю настройки прокси-сервера и обновлю его, он перезагрузит сайт с новым прокси-сервером?

private void Load()
{
    //Disable the error messages.
    myWebBrowser.ScriptErrorsSuppressed = true;

    //Navigate to the cmyip website.
    myWebBrowser.Navigate("http://www.cmyip.org");
}

private void SetProxy(string Proxy)
{

    string key = "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings";

    RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(key, true);
    RegKey.SetValue("ProxyServer", Proxy);
    if (Proxy == "")
    {
        RegKey.SetValue("ProxyEnable", 0);
    }
    else
    {
        RegKey.SetValue("ProxyEnable", 1);
    }

}


Что я уже пробовал:

Я попытался инициализировать новый экземпляр webbrowser, но это не сработало, я также погуглил эту проблему.

1 Ответов

Рейтинг:
2

Dave Kreskowiak

Вы взламываете настройки непосредственно в реестре, но приложение не знает, что эти вещи изменились. Элемент управления WebBrowser загружает информацию прокси-сервера только один раз, когда элемент управления создается.

Вы должны изменить информацию о прокси-сервере, используя функции в WinInet.dll, пример которого вы можете найти здесь[^]. Это не простая, прямолинейная вещь.