Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

แก้ไข: The Code Execution cannot Proceed (Edgegdi.dll Error)

ข้อผิดพลาด Edgegdi.dll อาจแสดงเมื่อเปิดแอปพลิเคชัน หากการติดตั้งแอปนั้นเสียหาย (Corrupt) หรือแอปอื่น (เช่น HP Sure Click Pro) รบกวนกระบวนการ นอกจากนี้ ความไม่เข้ากันได้ระหว่าง OS กับโปรแกรมที่มีปัญหาก็อาจก่อให้เกิดข้อผิดพลาดนี้

ปัญหาเกิดเมื่อผู้ใช้พยายามเปิดแอป (เช่น Final Draft) แต่เจอข้อความ:

"The code execution cannot proceed because edgegdi.dll was not found. Reinstalling the program may fix this problem."

เมื่อกด OK ข้อความหายไป และแอปเปิดทำงานได้ปกติ (ทำทุกอย่างตามปกติ) บางแอป (เช่น Nitro PDF Creator) แสดงข้อผิดพลาดนี้ตอนสร้าง PDF แต่ไฟล์สร้างสำเร็จ

แอปที่รายงานเจอข้อผิดพลาดนี้:

  • Final Draft
  • Calyx Point
  • Nitro PDF Creator
  • Microsoft Edge
  • Windows Task Manager
  • VirtualBox
  • 1Password
  • AccuMail

ก่อนแก้ไข DLL Error บน Windows 10 ลองตรวจสอบว่า ลบ Temporary Files (ไปที่ Temp และ %Temp% ผ่าน Run แล้วลบเนื้อหา) ช่วยแก้ปัญหา DLL ได้หรือไม่

วิธีแก้ที่ 1: รัน Installer Setup ของแอปที่มีปัญหาใหม่

การติดตั้งที่เสียหายของแอปที่มีปัญหา (เช่น 1Password) อาจก่อให้เกิด DLL Issue ในบริบทนี้ การรัน Installer Setup ใหม่ (โดยไม่ Uninstall ตัวเก่า) ของแอปที่ได้รับผลกระทบ อาจแก้ปัญหาได้ เราจะใช้ Nitro PDF Creator เป็นตัวอย่าง

  1. เปิด Web Browser ไปที่เว็บไซต์ Nitro PDF Creator
  2. ดาวน์โหลด เวอร์ชันล่าสุด และ รัน Setup
  3. ทำตาม พรอมป์จนเสร็จ (ถ้าถามให้ Repair ให้เลือก Repair) → Reboot
  4. หลัง Reboot ตรวจสอบว่า Nitro PDF Creator ไม่มี DLL Issue แล้ว

วิธีแก้ที่ 2: เปิดแอปใน Compatibility Mode

ความไม่เข้ากันได้ระหว่างแอปที่มีปัญหากับ Windows อาจก่อให้เกิด DLL Error ในกรณีนี้ การเปิดแอปใน Compatibility Mode อาจช่วยได้ แต่ก่อนหน้านั้น ตรวจสอบให้แน่ใจว่า End Process ทั้งหมดที่เกี่ยวข้องกับแอปใน Task Manager แล้ว

  1. คลิกขวา ไอคอน Shortcut ของแอปที่มีปัญหา (เช่น Final Draft) → Open File Location (หรือค้นหาใน Start Menu)
  2. คลิกขวา ไฟล์ EXE หลักของแอป → Properties
  3. แท็บ Compatibility (ใต้ Compatibility Mode) → ติ๊ก Run This Program in Compatibility Mode for: → เลือก Windows 8 ใน Dropdown
  4. Apply → Reboot → ตรวจสอบว่า DLL Issue แก้แล้วหรือยัง

วิธีแก้ที่ 3: Uninstall แอปที่ขัดแย้ง

DLL Issue อาจเกิดหากแอปอื่นบนระบบรบกวนการทำงานของแอปที่มีปัญหา (เช่น Calyx Point) ในกรณีนี้ Uninstall หรือ Disable แอปที่มีปัญหาใน Startup อาจช่วยได้

  1. ทำ Clean Boot และดูว่า DLL Issue แก้หรือยัง สามารถใช้ Autoruns Utility หาแอปที่ก่อให้เกิดปัญหาได้
  2. หากแก้แล้ว ให้ Enable Process/Applications/Services ที่ปิดไว้ระหว่าง Clean Boot ทีละตัว จนหาเจอแอปที่เป็นสาเหตุ
  3. เมื่อเจอ Culprit แล้ว ให้ ลบ หรือ ปิด ใน Startup ของระบบ

HP Sure Click Pro และ HP Sure Sense ถูกรายงานว่าเป็นสาเหตุของ Edgegdi.dll Error เพื่อแก้ปัญหาอาจต้อง Uninstall แอปเหล่านี้ (หรือแอปคล้ายๆ)

  1. กดปุ่ม Windows เปิด Settings
  2. เลือก Apps → ขยาย HP Sure Click Pro (หรือ HP Sure Sense)
  3. กด Uninstall → Confirm
  4. รอ Uninstall เสร็จ → Reboot
  5. หลัง Reboot ตรวจสอบว่า DLL Message ไม่แสดงตอนเปิดแอปแล้ว

หากแอปที่ก่อให้เกิดปัญหาไม่อยู่ใน Apps List อาจใช้ 3rd Party Uninstaller ลบได้ (เช่น HP Sure Sense)

วิธีแก้ที่ 4: วางไฟล์ Edgegdi.dll ใน System Directories

หากวิธีข้างต้นไม่ได้ผล การวางสำเนา Edgegdi.dll ใหม่ใน System Directories อาจช่วยได้ แต่ต้องได้ไฟล์ DLL จากคอมพิวเตอร์อื่นที่ทำงานปกติและเชื่อถือได้ (ไม่แนะนำให้ดาวน์โหลด DLL จากเว็บไซต์ออนไลน์ อาจมีผลกระทบด้านความปลอดภัย)

หากหา DLL จากเครื่องอื่นไม่ได้ สามารถ Rename/Replace DLL ที่มีอยู่ใน System Directories แทนได้ (ในทางเทคนิค เรียกว่า Placing a Dummy DLL) เนื่องจาก edgegdi.dll อาจถูกตั้งค่าผิดเป็น Dependency ที่จำเป็นในแอปเหล่านี้ แม้ว่า DLL Functions ไหนก็ตามจะไม่ถูกเรียกโดยแอปเลย ดังนั้น DLL อื่นที่มีชื่อถูกต้องและ Bit Value ตรงกันใน System Directory ที่ถูกต้อง อาจทำให้แอปโหลดได้โดยไม่มีปัญหา ก่อนเริ่ม ตรวจสอบให้แน่ใจว่าระบบตั้งค่าแสดง File Extensions แล้ว

  1. ปิดแอปที่มีปัญหา (ถ้ากำลังรัน) และตรวจสอบว่าไม่มี Process ที่เกี่ยวข้องทำงานใน Task Manager
  2. คลิกขวา Start Menu → เลือก File Explorer
  3. ไปที่พาธ:
    \Windows\SysWOW64
  4. คลิกขวา DLL ไฟล์ใดก็ได้ (เช่น EdgeManager.dll) → Copy
  5. Paste ใน Directory เดียวกัน → คลิกขวาไฟล์ที่ Paste (ถ้าถาม Continue ให้กด)
  6. เลือก Rename → ตั้งชื่อ Edgegdi.dll (ถ้าถาม Continue/UAC ให้กด Yes)
  7. Copy ไฟล์นี้ → ไปที่
    \Windows\System32
  8. Paste ใน Directory System32 → Reboot
  9. หลัง Reboot แอปควรไม่มี Edgegdi.dll Error แล้ว

สามารถทำได้โดยรัน cmdlets ต่อไปนี้ทีละคำสั่งใน Elevated Command Prompt (กด Enter ทุกคำสั่ง):

cd %WINDIR%\SysWow64
copy EdgeManager.dll Edgegdi.dll
cd %WINDIR%\System32
copy EdgeManager.dll Edgegdi.dll