Applies ToInternet Explorer

現象

お使いのコンピューターが Microsoft Internet Explorer を実行していないと、 WinHttpGetIEProxyConfigForCurrentUser関数を使用して、任意のプログラムで、次のエラー メッセージが表示されます。

ERROR_FILE_NOT_FOUND

原因

WinHttpGetIEProxyConfigForCurrentUser関数は、次のレジストリ サブキーを使用します。

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet の設定Internet Explorer を実行する最初の時間にこのレジストリ サブキーが作成されます。お使いのコンピューターでは、Internet Explorer は実行されませんが、このレジストリ サブキーは存在しません。するプログラムでは、このレジストリ エントリの検索関数、 WinHttpGetIEProxyConfigForCurrentUser関数を呼び出すし、それを見つけることができませんし、エラー メッセージが表示されます。

解決方法

この問題を解決するは、Internet Explorer を起動し、任意のプログラムで、 WinHttpGetIEProxyConfigForCurrentUser関数を使用します。

詳細情報

問題の再現手順

  1. Internet Explorer が使用されないコンピューターにログオンします。

  2. Microsoft Visual Studio .NET を起動します。

  3. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  4. プロジェクトの種類] の下には、 Visual C++ プロジェクトをクリックします。

  5. [テンプレート] には、 Win32 プロジェクトをクリックします。

  6. [名前] ボックスにテストと入力し、[ OK] をクリックします。

  7. [ Win32 アプリケーション ウィザードへようこそ] ページで、アプリケーションの設定をクリックします。

  8. [アプリケーションの種類] で、コンソール アプリケーション] をクリックし、し、[完了] をクリックします。Test.cpp ファイルが作成されます。

  9. Test.cpp ファイル内の既存のコードを次のコードに置き換えます。

    #include "stdafx.h"#include <Windows.h>#include <Winhttp.h>using namespace std;void main(){WINHTTP_CURRENT_USER_IE_PROXY_CONFIG MyProxyConfig;if(!WinHttpGetIEProxyConfigForCurrentUser(&MyProxyConfig)){//check the errorDWORD Err = GetLastError();cout << "WinHttpGetIEProxyConfigForCurrentUser failed with the following error number: " << Err << endl;switch (Err){case ERROR_FILE_NOT_FOUND:cout << "The error is ERROR_FILE_NOT_FOUND" << endl;break;case ERROR_WINHTTP_INTERNAL_ERROR:cout << "ERROR_WINHTTP_INTERNAL_ERROR" << endl;break;case ERROR_NOT_ENOUGH_MEMORY:cout << "ERROR_NOT_ENOUGH_MEMORY" << endl;break;default:cout << "Look up error in header file." << endl; }//end switch}//end ifelse{//no error so check the proxy settings and free any stringscout << "Auto Detect is: " << MyProxyConfig.fAutoDetect << endl;if(NULL != MyProxyConfig.lpszAutoConfigUrl){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszAutoConfigUrl << endl;GlobalFree(MyProxyConfig.lpszAutoConfigUrl);}if(NULL != MyProxyConfig.lpszProxy){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxy << endl;GlobalFree(MyProxyConfig.lpszProxy);}if(NULL != MyProxyConfig.lpszProxyBypass){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxyBypass << endl;GlobalFree(MyProxyConfig.lpszProxyBypass);}}//end elsecout << "finished!";}//end main
  10. Microsoft プラットフォーム ソフトウェア開発キット (SDK) には、Winhttp.h ファイルと Winhttp.lib ファイルが含まれます。プラットフォーム SDK をダウンロードするには、次のマイクロソフト Web サイトを参照してください。

    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/

  11. [プロジェクト] メニューの [テストのプロパティをクリックします。

  12. 左側のウィンドウでリンカーをダブルクリックします。

  13. リンカーでは、[入力] をクリックします。

  14. 右側のウィンドウでは、追加の依存関係] フィールドに、 winhttp.libを入力し、し、[ OK] をクリックします。

  15. [ビルド] メニューの [ソリューションのビルド] をクリックします。

  16. CTRL + f5 キーを押してデバッガーなしプログラムを実行します。「現象」に記載されているエラー メッセージが表示されます。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。