1

Visual C++ を使用せずに C++ でプロキシ設定を変更しようとしています。私はこれを見つけました:

const wchar_t* proxyName = pnt.wc_str(); // pnt is a wxString declared earlier in the code.
INTERNET_PER_CONN_OPTION_LIST OptionList;
INTERNET_PER_CONN_OPTION Option[3];
unsigned long listSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_PROXY_SERVER;
Option[1].dwOption = INTERNET_PER_CONN_FLAGS;
Option[2].dwOption = INTERNET_PER_CONN_PROXY_BYPASS;
OptionList.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
OptionList.pszConnection = NULL;
OptionList.dwOptionCount = 3;
OptionList.dwOptionError = 0;

DWORD proxyType = PROXY_TYPE_DIRECT;

if (proxyName)
{
    if (proxyName[0])
    {
        proxyType = PROXY_TYPE_PROXY;
    }
}

Option[0].Value.pszValue = (LPWSTR)proxyName;
Option[1].Value.dwValue = proxyType;
if (on)
{
    Option[2].Value.pszValue = (LPWSTR)L"";
}
else
{
    Option[2].Value.pszValue = (LPWSTR)L"";
}
OptionList.pOptions = Option;

if (!InternetSetOption(0, INTERNET_OPTION_PER_CONNECTION_OPTION, &OptionList, listSize))
{
    // handle error
}

InternetSetOption(0, INTERNET_OPTION_PROXY_SETTINGS_CHANGED, NULL, NULL);

ただし、MinGW を使用する必要があり、MinGW の wininet.h が大きく異なるため、「'INTERNET_PER_CONN_OPTION_LIST' はこのスコープで宣言されていませんでした」という他の「宣言されていない」メッセージが表示されます。ビジュアルC++が非常に優れているため、検索しても何も見つかりませんでした。私はこれを見つけましが、ほとんどビューがなく回答がなく、ほぼ 1 か月間触れられておらず、私が探しているものでもありません。ドキュメントも見つからないようです。何か案は?ありがとうございます!

4

0 に答える 0