プロキシ設定をキャプチャしようとしています (「設定を自動的に検出する」)。私のコードは XP と Vista で動作します。ただし、Windows 7 では動作しません。
対象プラットフォームの詳細をご覧ください
Windows 7 エンタープライズ、IE 8.0.7600.16385、Wininet.dll 8.0.7600.16535
コードスニペットをご覧ください
INTERNET_PER_CONN_OPTION_LIST List;
INTERNET_PER_CONN_OPTION Option[1];
unsigned long nSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
Option[0].dwOption = INTERNET_PER_CONN_FLAGS;
List.dwSize = sizeof(INTERNET_PER_CONN_OPTION_LIST);
List.pszConnection = NULL;
List.dwOptionCount = 1;
List.dwOptionError = 0;
List.pOptions = Option;
if(!InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize))
AfxMessageBox(L"InternetQueryOption failed! (%d)\n");
TCHAR a[100];
swprintf(a, L"Flag value is : %d",Option[0].Value.dwValue, 80);
AfxMessageBox(a);
しかし、Windows 7 では、IE の [設定を自動的に検出する] オプションがオンになっていても、プログラムはそのフラグが設定されていないと言います。
以下に示すように、WinHttp APIでも試しました。
WINHTTP_CURRENT_USER_IE_PROXY_CONFIG stProxyConfig = {0};
WinHttpGetIEProxyConfigForCurrentUser(&stProxyConfig);
if (stProxyConfig.fAutoDetect == TRUE)
AfxMessageBox(L"Auto proxy detection enabled");
else
AfxMessageBox(L"Auto proxy detection disabled");
Windows 7 では、上記のコードも [設定を自動的に検出する] オプションをキャプチャできません。これに関するご意見は大歓迎です。
ありがとうジョン