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. ในกล่องชื่อพิมพ์ทดสอบและจากนั้น คลิกตกลง

  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

    หมายเหตุ แฟ้ม Winhttp.h และ Winhttp.lib แฟ้มรวมอยู่ในชุดพัฒนาซอฟต์แวร์แพลตฟอร์ม Microsoft (SDK) เมื่อต้องการดาวน์โหลดแพลตฟอร์ม SDK แวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft:

  10. บนเมนูโครงการคลิกทดสอบคุณสมบัติ

  11. ในบานหน้าต่างด้านซ้าย คลิกสองครั้งที่ตัวเชื่อมโยงข้อมูล

  12. ภายใต้ตัวเชื่อมโยงเขตคลิกป้อนเข้า

  13. ในบานหน้าต่างด้านขวา พิมพ์winhttp.libในฟิลด์อ้างอิงเพิ่มเติมและจากนั้น คลิกตกลง

  14. ที่เมนู สร้าง ให้คลิก สร้างโซลูชัน

  15. กด CTRL + F5 เพื่อเรียกใช้โปรแกรมโดยไม่ดีบัก คุณได้รับข้อความแสดงข้อผิดพลาดที่กล่าวถึงในส่วน "อาการ"

อ้างอิง

สำหรับข้อมูลเพิ่มเติม โปรดแวะไปที่เว็บไซต์ต่อไปนี้ของ Microsoft Developer Network (MSDN):

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย