Как я узнаю настройки браузера прокси?

с моей точки зрения, общий ответ состоял в том, чтобы отменить объект, который сохраняет открытый процесс с файлом, который вы хотите удалить. В моем случае это MailMessage, но также может быть поток, filestream и т. Д., Которые вам нужно утилизировать.

25
задан rix0rrr 14 October 2008 в 21:02
поделиться

3 ответа

Функцией, которую Вы ищете, является WinHttpGetIEProxyConfigForCurrentUser (), который документируется в http://msdn.microsoft.com/en-us/library/aa384096 (По сравнению с 85) .aspx. Эта функция используется Firefox и Opera для получения их настроек прокси по умолчанию, хотя можно переопределить их на браузер. Не делайте этого, все же. Правильный поступок (который является тем, что все другие делают) должен просто получить настройки IE и предположить, что они корректны, так как они почти всегда.

Вот образец соответствующей логики, которую необходимо адаптировать к потребностям:

if( WinHttpGetIEProxyConfigForCurrentUser( &ieProxyConfig ) )
{
    if( ieProxyConfig.fAutoDetect )
    {
        fAutoProxy = TRUE;
    }

    if( ieProxyConfig.lpszAutoConfigUrl != NULL )
    {
        fAutoProxy = TRUE;
        autoProxyOptions.lpszAutoConfigUrl = ieProxyConfig.lpszAutoConfigUrl;
    }
}
else
{
    // use autoproxy
    fAutoProxy = TRUE;
}

if( fAutoProxy )
{
    if ( autoProxyOptions.lpszAutoConfigUrl != NULL )
    {
        autoProxyOptions.dwFlags = WINHTTP_AUTOPROXY_CONFIG_URL;
    }
    else
    {
        autoProxyOptions.dwFlags = WINHTTP_AUTOPROXY_AUTO_DETECT;
        autoProxyOptions.dwAutoDetectFlags = WINHTTP_AUTO_DETECT_TYPE_DHCP | WINHTTP_AUTO_DETECT_TYPE_DNS_A;
    }

    // basic flags you almost always want
    autoProxyOptions.fAutoLogonIfChallenged = TRUE;

    // here we reset fAutoProxy in case an auto-proxy isn't actually
    // configured for this url
    fAutoProxy = WinHttpGetProxyForUrl( hiOpen, pwszUrl, &autoProxyOptions, &autoProxyInfo );
}

if ( fAutoProxy )
{
    // set proxy options for libcurl based on autoProxyInfo
}
else
{
    if( ieProxyConfig.lpszProxy != NULL )
    {
        // IE has an explicit proxy. set proxy options for libcurl here
        // based on ieProxyConfig
        //
        // note that sometimes IE gives just a single or double colon
        // for proxy or bypass list, which means "no proxy"
    }
    else
    {
        // there is no auto proxy and no manually configured proxy
    }
}
36
ответ дан David Scherba 15 October 2019 в 16:35
поделиться

Существуют ключи реестра для этих значений, до которых Вы могли добраться непосредственно, конечно. Вы могли также сделать это в.NET без большого количества стычки вообще. Я полагаю, что объект WebClient согласовывает настройки прокси для Вас на основе текущих настроек. Это было бы похоже на это в C#:

using System.Net;

string url = "http://www.example.com";
WebClient client = new WebClient();
byte[] fileBuffer = client.DownloadFile(url);

Или что-то близко к этому.

1
ответ дан justin.m.chase 15 October 2019 в 16:35
поделиться

Для Firefox/Seamonkey проблема немного более хитра из-за существования многих профилей.

, Если Вы хотите принять, существует только один профиль тогда, просто необходимо найти prefs.js. Вы анализируете network.proxy.type, и затем используете его для решения, который связал значения для чтения.

я работаю над некоторыми документами для Mozilla, таким образом, вставляет Ваши последующие вопросы здесь (установил флажок Wiki), и я попытаюсь дать Вам информацию, в которой Вы нуждаетесь.

0
ответ дан benc 15 October 2019 в 16:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: