บางผู้ใช้ Windows พบข้อความ 'DllUnregisterServer failed with error code 0x80040200' เมื่อพยายามลงทะเบียนหรือยกเลิกการลงทะเบียนไฟล์ DLL หรือเมื่อพยายามติดตั้งแอปพลิเคชันที่พยายามลงทะเบียนไฟล์ DLL โดยอัตโนมัติ ปัญหานี้รายงานว่าพบบน Windows 7, Windows 8.1 และ Windows 10

สาเหตุที่พบบ่อยที่สุดที่จะทำให้เกิดข้อผิดพลาดเฉพาะนี้คือปัญหาสิทธิ์ (permission issue) เพื่อแก้ไข คุณจะต้องพยายามลงทะเบียนหรือยกเลิกการลงทะเบียนไฟล์ DLL ด้วยสิทธิ์ผู้ดูแลระบบ (admin access)
อย่างไรก็ตาม หากปัญหาเกิดขึ้นขณะพยายามติดตั้งโปรแกรม คุณอาจต้องลงทะเบียนไฟล์ใหม่หลังจากการติดตั้งล้มเหลว หากคุณเจอปัญหากับการอ้างอิง OCX ลองย้ายไฟล์ไปยังโฟลเดอร์ System32 ก่อนที่จะพยายามติดตั้งอีกครั้ง
วิธีที่ 1: ยกเลิกการลงทะเบียนไฟล์ DLL ด้วยสิทธิ์ Admin
ในกรณีที่คุณเห็นข้อผิดพลาดนี้ขณะพยายามยกเลิกการลงทะเบียนไฟล์ DLL ด้วยตนเอง คุณน่าจะเจอ 0x80040200 เพราะคุณไม่มีสิทธิ์เพียงพอ หากสถานการณ์นี้ใช้ได้ คุณควรสามารถหลีกเลี่ยงข้อความข้อผิดพลาดนี้ได้โดยใช้คำสั่ง 'regsvr32' ใน command prompt ที่มีสิทธิ์สูง (elevated)
หากคุณยังไม่ได้ลองวิธีนี้ ให้ทำตามคำแนะนำด้านล่างเพื่อพยายามยกเลิกการลงทะเบียนไฟล์ DLL ด้วยตนเองจาก CMD prompt ที่มีสิทธิ์สูง:
- กด Windows key + R เพื่อเปิดกล่องโต้ตอบ Run ต่อไป พิมพ์ 'cmd' ภายในกล่องข้อความและกด Ctrl + Shift + Enter เพื่อเปิด CMD prompt ที่มีสิทธิ์สูง เมื่อเห็น UAC (User Account Control) ให้คลิก Yes เพื่อให้สิทธิ์ผู้ดูแลระบบ

- เมื่ออยู่ใน elevated CMD prompt ให้พิมพ์คำสั่งต่อไปนี้และกด Enter เพื่อยกเลิกการลงทะเบียนไฟล์ .DLL ด้วยตนเอง:
regsvr32 /u *DLL File*
หมายเหตุ: โปรดทราบว่า *DLL file* เป็นเพียง placeholder คุณจะต้องแทนที่ด้วยชื่อ + นามสกุลของไฟล์ DLL ที่คุณพยายามยกเลิกการลงทะเบียน ตัวอย่างเช่น เราต้องยกเลิกการลงทะเบียนไฟล์ cdo32.dll ดังนั้นเราใช้คำสั่ง regsvr32 /u cdo32.dll
- ในกรณีที่การดำเนินการเสร็จสมบูรณ์โดยไม่มีรหัสข้อผิดพลาด 0x80040200 ให้รีบูทเครื่องของคุณ และจากนั้นดำเนินการติดตั้งที่ก่อให้เกิดปัญหาก่อนหน้านี้ให้เสร็จสิ้น
ในกรณีที่ปัญหาเดียวกันยังคงเกิดขึ้น หรือการดำเนินการนี้ไม่ใช้ได้ ให้ดำเนินการตามวิธีแก้ไขที่เป็นไปได้ถัดไปด้านล่าง
วิธีที่ 2: ลงทะเบียนไฟล์ใหม่หลังจากติดตั้งโปรแกรม
หากคุณเห็นข้อผิดพลาดนี้ขณะพยายามติดตั้งแอปพลิเคชัน คุณน่าจะเห็นข้อผิดพลาดนี้เนื่องจากมีการอ้างอิงบางอย่างที่ไม่ถูกโหลดอย่างถูกต้อง ในกรณีนี้ คุณน่าจะสามารถแก้ไขปัญหาได้โดยการรันตัวติดตั้งด้วยสิทธิ์ admin และจากนั้นยกเลิกการลงทะเบียนและลงทะเบียนการอ้างอิงที่ล้มเหลวด้วยตนเอง
หมายเหตุ: วิธีแก้ไขนี้รายงานว่ามีประสิทธิภาพบน Windows 7 บ่อยครั้ง
ในกรณีที่สถานการณ์นี้ใช้ได้ ให้ทำตามคำแนะนำด้านล่างเพื่อรันการติดตั้งด้วยสิทธิ์ admin จากนั้นลงทะเบียนการอ้างอิงที่ล้มเหลวใหม่:
- เปิด File Explorer และนำทางไปยังตำแหน่งของตัวติดตั้งที่สุดท้ายก่อให้เกิดข้อผิดพลาด
- คลิกขวาที่มันและเลือก Run as Administrator จากเมนูบริบทที่ปรากฏขึ้นใหม่

- ทำตามคำแนะนำบนหน้าจอเพื่อดำเนินการติดตั้งให้เสร็จสิ้น อย่าแคร์หากคุณเห็นข้อผิดพลาด 0x80040200 เดียวกัน – เพียงปิดหน้าต่างข้อผิดพลาดและไปขั้นตอนถัดไป
- เปิดกล่องโต้ตอบ Run โดยกด Windows key + R ต่อไป พิมพ์ 'cmd' ภายในกล่องข้อความและกด Ctrl + Shift + Enter เพื่อเปิด elevated CMD prompt

- เมื่ออยู่ในเทอร์มินัล Command Prompt ให้พิมพ์คำสั่งต่อไปนี้ตามลำดับและกด Enter หลังจากแต่ละคำสั่งเพื่อยกเลิกการลงทะเบียนและจากนั้นลงทะเบียนการอ้างอิง OCX ใหม่:
spr32x30.ocx /UNREGISTER spr32x30.ocx /REGSERVER
- รีสตาร์ทคอมพิวเตอร์ของคุณ และดูว่าปัญหาแก้ไขแล้วหรือยังในการเริ่มต้นคอมพิวเตอร์ครั้งต่อไป
ในกรณีที่ปัญหาเดียวกันยังคงอยู่ ให้ดำเนินการตามวิธีแก้ไขที่เป็นไปได้ถัดไปด้านล่าง
วิธีที่ 3: รันไฟล์ OCX จากโฟลเดอร์ System32
ในกรณีที่คุณเจอปัญหาเฉพาะนี้เมื่อทำงานกับไฟล์ .ocx (OLE Control Extension) คุณน่าจะเป็นปัญหาสิทธิ์ ผู้ใช้ที่ได้รับผลกระทบหลายคนยืนยันว่าพวกเขาแก้ไขปัญหานี้ได้โดยการย้ายไฟล์ .OCX ไปยังโฟลเดอร์ System32 และเปิดมันจากที่นั่นเพื่อให้แน่ใจว่ามันมีการเข้าถึงที่จำเป็น
สำคัญ: ทำเช่นนี้ก็ต่อเมื่อคุณแน่ใจ 100% ว่าไฟล์ .OCX ไม่เป็นภัยคุกคามด้านความปลอดภัย
หากคุณแน่ใจว่าเจอรหัสข้อผิดพลาด 0x80040200 กับประเภทไฟล์นี้ ให้ทำตามคำแนะนำด้านล่างเพื่อย้ายไฟล์ไปยังโฟลเดอร์ System32 ก่อนเปิดมัน:
- เปิด File Explorer นำทางไปยังตำแหน่งของไฟล์ .OCX คลิกขวาที่มันและเลือก Cut จากเมนูบริบท

- ต่อไป นำทางไปยัง C:\Windows\System32 และวางไฟล์ที่คุณคัดลอกไปไว้ในคลิปบอร์ด
- เมื่อไฟล์อยู่ในโฟลเดอร์ System32 แล้ว ให้ทำซ้ำการติดตั้งอีกครั้ง และดูว่าคุณยังเจอข้อผิดพลาด 0x80040200 เดียวกันหรือไม่