0

InternetQueryOption API を使用してプロキシ設定を照会するプログラムを作成しています。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa385145%28v=vs.85%29.aspxの Windows ドキュメントに目を通すINTERNET_PER_CONN_OPTION

ドキュメントにメモがあります

Windows 7 以降:
Internet Explorer 8 をサポートするクライアントは、INTERNET_PER_CONN_FLAGS_UI を使用して接続の種類を照会する必要があります。このクエリが失敗した場合、システムは以前のバージョンの Internet Explorer を実行しているため、クライアントは INTERNET_PER_CONN_FLAGS を使用して再度クエリを実行する必要があります。

Internet Explorer のバージョンに関係なく、INTERNET_PER_CONN_FLAGS を使用して接続の種類を復元します。

IE9 を実行している Win7 64 ビット マシンのINTERNET_PER_CONN_FLAGS代わりに使用してテストしましたが、すべて正常に動作しているようです。INTERNET_PER_CONN_FLAGS_UI

また、 と の機能に関するドキュメントもINTERNET_PER_CONN_FLAGS同じINTERNET_PER_CONN_FLAGS_UIようです。

では、使用する理由は何INTERNET_PER_CONN_FLAGS_UIですか?注は、それがIE8のみのものであることを示唆していますか、それともIE8以上のものであることを示唆していますか?

私のプログラムは、IE6 を実行する WinXP から現在の Win7 マシンまで、すべてをサポートする必要があります。そのため、何を使用すればよいかについては明確ではありません。

これは私のコードです

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 = 0;
List.dwOptionCount = sizeof(Option)/sizeof(Option[0]);
List.dwOptionError = 0;

Option[0].Value.pszValue = 0;

List.pOptions = Option;

InternetQueryOption(NULL, INTERNET_OPTION_PER_CONNECTION_OPTION, &List, &nSize);
  1. に変更INTERNET_PER_CONN_FLAGSしてから、失敗した場合INTERNET_PER_CONN_FLAGS_UIにもう一度呼び出す必要がありますか?INTERNET_PER_CONN_FLAGSINTERNET_PER_CONN_FLAGS_UI

  2. また、これは具体的にどういう意味ですか

    Internet Explorer のバージョンに関係なく、INTERNET_PER_CONN_FLAGS を使用して接続の種類を復元します。

これはと にINTERNET_PER_CONN_FLAGS_UIのみ関連するという意味ですか。常に を使用する必要があります。InternetQueryOptionInternetSetOptionINTERNET_PER_CONN_FLAGS

4

2 に答える 2

2

INTERNET_PER_CONN_FLAGS_UI は、[ツール] > [インターネット オプション] > [接続] > [LAN 設定] 内に示されているプロキシ設定を返します。

これらの設定は、INTERNET_PER_CONN_FLAGS によって返される設定とは異なる場合があります。これは、現在のネットワークが WPAD を使用していないと WinINET が判断した場合、「自動検出」設定を「非表示」にします。これはパフォーマンスの最適化です。詳細については、 https://stackoverflow.com/a/5138232/126229を参照してください。

一般的に言えば、ユーザーに設定を表示するときは、INTERNET_PER_CONN_FLAGS_UI のみを使用する必要があります。どのプロキシを使用するかを決定することが目的の場合は、INTERNET_PER_CONN_FLAGS を使用してください。

于 2014-02-19T19:56:03.647 に答える
1

あなたが引用したドキュメントとあなたが達成したいことの説明から、あなたの質問1と2に対する答えはYesYes.

ただし、MS のすべてのドキュメントと同様に、不明確、時代遅れ、または単純に間違っている可能性があります。したがって、質問で概説した前提から始めて、VM を使用して WinXP/IE6、Win8/IE10 などのさまざまなプラットフォームの組み合わせでコードのプロトタイプをテストすることをお勧めします。経験的にそれを行うことで、実際の事実とドキュメントとの比較についてより良いアイデアが得られ、さらに作業を行うためのテスト環境も提供されます。

于 2013-03-24T11:06:38.860 に答える