ผู้ใช้หลายคนรายงานว่าไม่สามารถพิมพ์เอกสารจากโปรแกรม Office เช่น Word, Excel, Publisher ได้ ข้อความข้อผิดพลาดที่แสดงคือ ‘Function Address Caused a Protection Fault’ ผู้ใช้ส่วนใหญ่ระบุว่าข้อผิดพลาดไม่เกิดขึ้นเมื่อพิมพ์แบบปกติ – เกิดขึ้นเฉพาะเมื่อพิมพ์จากภายในแอปพลิเคชัน Office ปัญหานี้ไม่เฉพาะเจาะจง Windows เวอร์ชันใดเวอร์ชันหนึ่ง เนื่องจากยืนยันแล้วว่าเกิดขึ้นบน Windows 7, 8.1 และ 10
สาเหตุของข้อผิดพลาด 'Function Address Caused a Protection Fault'
เราสืบสวนปัญหานี้จากรายงานผู้ใช้และกลยุทธ์แก้ไขที่พบบ่อย พบว่ามีสถานการณ์หลายอย่างที่อาจก่อให้เกิดข้อผิดพลาดนี้ รายการสาเหตุที่เป็นไปได้:
- ไม่ได้ตั้งค่าเครื่องพิมพ์ที่ถูกต้องเป็นค่าเริ่มต้น – หากพยายามพิมพ์จากเครื่องพิมพ์ที่ไม่ได้ตั้งเป็น Default ใน OS ข้อผิดพลาดนี้จะเกิดขึ้น แก้ไขได้โดยเข้า Printer Properties ตั้งเครื่องพิมพ์ที่ถูกต้องเป็น Default
- ไดรเวอร์เครื่องพิมพ์เก่ามาก – ไดรเวอร์เกาหรือไม่เข้ากับเวอร์ชัน Windows (อาจเกิดหลังย้าย OS) แก้ไขได้โดยอัปเดตไดรเวอร์อัตโนมัติ (ผ่าน Device Manager) หรือดาวน์โหลดจากเว็บผู้ผลิต
- Printer Subkeys ใน Registry ชำรุด – หากปัญหาเกิดกับเครื่องพิมพ์ทุกตัวในเครือข่าย อาจเป็น Subkeys ชำรุด แก้ไขได้โดยลบไดรเวอร์ปัจจุบัน ติดตั้งเครือข่ายใหม่ และอัปเดตไดรเวอร์เวอร์ชันล่าสุด
- ไฟล์ระบบชำรุด (System file corruption) – เป็นสาเหตุที่น้อยกว่า แต่อาจเกิดจาก Security Scan กักกันไฟล์ของ Print Service แก้ไขได้โดยใช้ System Restore
หากคุณกำลังเผชิญปัญหานี้ บทความนี้มีคู่มือ Troubleshooting หลายวิธี ที่ยืนยันแล้วว่าทำงานได้จากผู้ใช้จริง แนะนำให้ทำตามลำดับที่จัดไว้ เพื่อประสิทธิภาพสูงสุด
วิธีที่ 1: เปลี่ยนเครื่องพิมพ์ค่าเริ่มต้น (Changing the default printer)
ปัญหานี้อาจเกิดจากเครื่องพิมพ์ที่ต้องการใช้ไม่ได้ตั้งเป็น Default ใน Windows ผู้ใช้หลายคนแก้ไขได้โดยตั้งค่า Default Printer ใหม่ ขั้นตอนแตกต่างกันไปตามเวอร์ชัน Windows
Windows 10
- กด Windows + R พิมพ์ ms-settings:printers กด Enter เปิดหน้าต่าง Printers & scanners ใน Settings
- ในแท็บ Printers & scanners เลือกเครื่องพิมพ์ที่ต้องการ คลิก Set as default จากเมนูที่ปรากฏ
- รีสตาร์ทคอมพิวเตอร์ และทดสอบพิมพ์อีกครั้ง
Windows 7, 8.1
- กดปุ่ม Windows เปิด Start Menu คลิก Devices and Printers ด้านขวา (หรือเปิด Control Panel → Devices and Printers)
- ในหน้าต่าง Devices and Printers คลิกขวาที่เครื่องพิมพ์ที่ต้องการ เลือก Set as default printer
- รีสตาร์ทคอมพิวเตอร์ และทดสอบอีกครั้ง
หากปัญหายังคงอยู่ ให้ไปที่วิธีถัดไป
วิธีที่ 2: อัปเดตไดรเวอร์เครื่องพิมพ์เป็นเวอร์ชันล่าสุด
ไดรเวอร์เครื่องพิมพ์เก่าเป็นสาเหตุอีกอย่างหนึ่ง ผู้ใช้หลายคนแก้ไขได้โดยอัปเดตผ่าน Device Manager หรือดาวน์โหลดจากเว็บผู้ผลิต
- กด Windows + R พิมพ์ devmgmt.msc กด Enter เปิด Device Manager
- ขยาย Print queues คลิกขวาที่เครื่องพิมพ์ที่มีปัญหา เลือก Update driver
- เลือก Search automatically for updated driver software รอสแกนเสร็จ หากพบไดรเวอร์ใหม่ ทำตามขั้นตอนติดตั้ง แล้วรีสตาร์ท
- หาก Device Manager ไม่พบไดรเวอร์ใหม่ ให้ไปที่เว็บผู้ผลิต ดาวน์โหลดและติดตั้งไดรเวอร์ล่าสุดด้วยตนเอง
- หลังติดตั้งเสร็จ รีสตาร์ท และทดสอบอีกครั้ง
หากยังเห็นข้อผิดพลาดเดิม ให้ไปวิธีถัดไป
วิธีที่ 3: ลบไดรเวอร์และ Subkeys การพิมพ์ (Removing driver & deleting printing subkeys)
วิธีนี้เป็นการแก้ไขที่นิยม โดยลบไดรเวอร์ปัจจุบันออกจากทุกเครื่องที่เกี่ยวข้อง แล้วติดตั้งเครือข่ายใหม่พร้อมไดรเวอร์อัปเดต เหมาะสำหรับกรณีที่ปัญหากระจายตัวไปหลายเครื่อง
แม้ขั้นตอนด้านล่างทำได้บน Windows 8.1 และ 10 แต่เรายืนยันได้เฉพาะ Windows 7 หากต้องการลองทำตามขั้นตอนด้านล่าง:
- ล็อกอินเข้าคอมพิวเตอร์ที่มีปัญหา
- กด Windows + R พิมพ์ devmgmt.msc เปิด Device Manager
- ขยาย Print queues คลิกขวาไดรเวอร์เครื่องพิมพ์ที่ต้องการลบ เลือก Uninstall Device → กด Uninstall อีกครั้งเพื่อยืนยัน
หมายเหตุ: หลังขั้นตอนนี้ปิด Device Manager ได้แล้ว
- กด Windows + R พิมพ์ printui.exe /s /t2 กด Enter เปิด Printer Server Properties UI
- ในหน้าจอ Print Server Properties ไปแท็บ Drivers เลือกไดรเวอร์ที่เป็นปัญหา กด Remove
- จะมีหน้าต่าง Remove Driver And Package เลือก Remove driver only กด OK
- ปิด Print Server Properties
- กด Windows + R พิมพ์ regedit กด Enter เปิด Registry Editor (กด Yes หาก UAC ถาม)
- ใน Registry Editor ไปที่ Subkey:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments\Windows x64\Print Processors\
หมายเหตุ: สามารถวางที่อยู่ข้างบนใน Navigation Bar แล้วกด Enter ได้เลย
- เปลี่ยนชื่อ Subkey หรือ Key ใดๆ ที่มี副檔名 .old (เช่น winprint → winprint.old) เพื่อให้ Windows สร้างโฟลเดอร์และค่าใหม่แทน
หมายเหตุ: ในกรณีตัวอย่างมีแค่ Subkey เดียวคือ winprint จึงเปลี่ยนเป็น winprint.old
- ปิด Registry Editor
- กด Windows + R พิมพ์ services.msc กด Enter เปิด Services
- หา Print Spooler คลิกขวาเลือก Restart
- รีสตาร์ทคอมพิวเตอร์อีกครั้ง และติดตั้งไดรเวอร์เครื่องพิมพ์ที่จำเป็นตอนบูท
- ทดสอบพิมพ์จากแอป Office ดูว่าข้อผิดพลาดหายไปแล้วหรือยัง
หากข้อผิดพลาดยังคงอยู่ ให้ไปวิธีถัดไป
วิธีที่ 4: ใช้ System Restore Point
หากข้อผิดพลาดเริ่มเกิดขึ้นเมื่อเร็วๆ นี้ อาจเป็นเพราะการเปลี่ยนแปลงของระบบล่าสุด หากไม่ทราบว่าอะไรทำให้การพิมพ์เสียหาย วิธี "แก้ทุกอย่าง" คือใช้ System Restore คืนสู่จุดก่อนหน้าที่พิมพ์ได้ปกติ วิธีนี้ยืนยันแล้วว่าทำงานได้กับผู้ใช้หลายคน
สำคัญ: กระบวนการนี้จะคืนสถานะเครื่องให้เหมือนตอนสร้าง Restore Point การเปลี่ยนแปลง เช่น การติดตั้งแอป, การตั้งค่าผู้ใช้ และอื่นๆ ในช่วงเวลานั้นจะหายไป
- กด Windows + R พิมพ์ rstrui กด Enter เปิด System Restore Wizard
- ที่หน้าจอแรก กด Next
- ติ๊กถูก Show more restore points เลือกจุดที่มีวันที่เก่ากว่าเมื่อเริ่มเจอข้อผิดพลาด กด Next
- กด Finish และยืนยันอีกครั้งเพื่อเริ่มกระบวนการ
- หลังบูทเสร็จ ลองพิมพ์จาก Office อีกครั้ง ดูว่าปัญหาแก้ไขแล้วหรือยัง