Отключить HTTP -прокси, когда заканчивается программаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Отключить HTTP -прокси, когда заканчивается программа

Сообщение Anonymous »

Это продолжение моего предыдущего вопроса: Установите HTTP (S) Proxy Proxy Proxy < /p>
У меня есть программа, которая устанавливает прокси -сервер для HTTP -запросов, когда он начинается. Когда программа завершает свою работу, мне нужно отключить прокси -прокси HTTP -запросы. Когда программа завершена, закрыв ее, вы можете установить обработчик, например, через STD :: atexit и остановить прокси в обратном вызове. В этом случае обработчик std :: atexit больше не будет называться. Мне нужно это, чтобы остановить прокси HTTP -трафик. Любые другие решения также приветствуются. < /P>
Решение как для консольной программы, так и для программы с графическим интерфейсом.BOOL SetConnectionOptions()
{
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);

// Fill the list structure.
list.dwSize = sizeof(list);

// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;

// Set three options.
list.dwOptionCount = 3;
list.pOptions = new INTERNET_PER_CONN_OPTION[3];

// Ensure that the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
return FALSE;
}

// Set flags.
list.pOptions[0].dwOption = INTERNET_PER_CONN_FLAGS;
list.pOptions[0].Value.dwValue = PROXY_TYPE_DIRECT |
PROXY_TYPE_PROXY;

// Set proxy name.
list.pOptions[1].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
list.pOptions[1].Value.pszValue = (LPWSTR)TEXT("http=127.0.0.1:8888;https=127.0.0.1:8888");

// Set proxy override.
list.pOptions[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
list.pOptions[2].Value.pszValue = (LPWSTR)TEXT("local");

// Set the options on the connection.
bReturn = InternetSetOption(NULL,
INTERNET_OPTION_PER_CONNECTION_OPTION, &list, dwBufSize);

// Free the allocated memory.
delete[] list.pOptions;
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH, NULL, 0);
return bReturn;
}
< /code>
и используя следующий код, я останавливаю прокси < /p>
BOOL DisableConnectionProxy(/*LPCTSTR conn_name*/)
{
//conn_name: active connection name.
INTERNET_PER_CONN_OPTION_LIST list;
BOOL bReturn;
DWORD dwBufSize = sizeof(list);
// Fill out list struct.
list.dwSize = sizeof(list);
// NULL == LAN, otherwise connectoid name.
list.pszConnection = NULL;
// Set three options.
list.dwOptionCount = 1;
list.pOptions = new INTERNET_PER_CONN_OPTION[list.dwOptionCount];
// Make sure the memory was allocated.
if (NULL == list.pOptions)
{
// Return FALSE if the memory wasn't allocated.
std::cout

Подробнее здесь: https://stackoverflow.com/questions/795 ... ogram-ends
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»