ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

หากบทความนี้ไม่ได้อธิบายถึงข้อความแสดงข้อผิดพลาดที่คุณได้รับ คุณสามารถขอรับคำอธิบายข้อความแสดงข้อผิดพลาดโดยละเอียด การดำเนินการที่แนะนำ และทรัพยากรสนับสนุนเพิ่มเติมจากหน้า TechNet เหตุการณ์และข้อผิดพลาด 

สรุป

Regsvr32 เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งเพื่อลงทะเบียนและยกเลิกการลงทะเบียนตัวควบคุม OLE เช่น DLLs และตัวควบคุม ActiveX ใน Windows Registry Regsvr32.exe ติดตั้งอยู่ในโฟลเดอร์ %systemroot%\System32 ใน Windows XP และ Windows รุ่นที่ใหม่กว่า


หมายเหตุ ในระบบปฏิบัติการ Windows เวอร์ชัน 64 บิต มีไฟล์ Regsv32.exe สองรุ่น:

  • รุ่น 64 บิต คือ %systemroot%\System32\regsvr32.exe

  • รุ่น 32 บิต คือ %systemroot%\SysWoW64\regsvr32.exe

ไวยากรณ์ของคำสั่ง Regsvr32

RegSvr32.exe มีตัวเลือกบรรทัดคำสั่งต่อไปนี้:

Regsvr32 [/u] [/n] [/i[:cmdline]] <dllname>

/u - ยกเลิกการลงทะเบียนเซิร์ฟเวอร์

/i - เรียกใช้ DllInstall passing it an optional [cmdline]; เมื่อใช้กับ /u จะเรียก dll uninstall
/n - ไม่เรียกใช้ DllRegisterServer ตัวเลือกนี้ต้องใช้กับ /i

/s – Silent; ไม่แสดงกล่องข้อความ

วิธีแก้ปัญหาทั่วไปสำหรับข้อผิดพลาด Regsvr32

ลองใช้วิธีใดวิธีหนึ่งต่อไปนี้เมื่อคุณได้รับข้อผิดพลาด Regsvr32:

  • วิธีที่ 1: เรียกใช้คำสั่ง Regsvr32 อีกครั้งจากพร้อมท์คำสั่งระดับสูงเมื่อต้องการเปิดพร้อมท์คำสั่งระดับสูง ให้ทำตามขั้นตอนเหล่านี้:

    Windows 8.1 และ Windows 8ปัดเจากขอบด้านขวาของหน้าจอเข้ามา แล้วแตะ ค้นหา หรือถ้าคุณกำลังใช้เมาส์ ให้ชี้เมาส์ไปที่มุมล่างขวาของหน้าจอ แล้วคลิก ค้นหา พิมพ์ Command Prompt ในกล่อง ค้นหา แล้วคลิกขวา Command Promptจากนั้นให้คลิก เรียกใช้ในฐานะผู้ดูแลระบบ หากคุณได้รับแจ้งเตือนให้ใส่รหัสผ่านของผู้ดูแลระบบหรือให้ทำการยืนยัน ให้ใส่รหัสผ่านหรือคลิก อนุญาต

    Windows 7 และ Windows Vistaคลิก เริ่มต้นแล้วพิมพ์ Command Prompt หรือ cmd ในกล่อง ค้นหา แล้วคลิกขวา Command Prompt จากนั้นให้คลิก เรียกใช้ในฐานะผู้ดูแลระบบ หากคุณได้รับแจ้งเตือนให้ใส่รหัสผ่านของผู้ดูแลระบบหรือให้ทำการยืนยัน ให้ใส่รหัสผ่านหรือคลิก อนุญาต

    Windows XPเข้าสู่ระบบด้วยบัญชีของผู้ดูแลระบบหรือบัญชีที่มีการอนุญาตระดับผู้ดูแลระบบ จากนั้นเปิดหน้าต่างพร้อมท์คำสั่ง

  • วิธีการ 2: ใช้ Regsvr32 เวอร์ชัน 32-บิต เพื่อลงทะเบียน DLL 32-บิต ใน Windows เวอร์ชัน 64-บิตหากคุณได้รับข้อผิดพลาดตอนลงทะเบียน DLL 32-บิต บน Windows เวอร์ชัน 64 บิต ให้ทำตามขั้นตอนเหล่านี้:

    1. เปิดพร้อมท์คำสั่งด้วยสิทธิ์ผู้ดูแล

    2. หาก DLL 32-บิต อยู่ในโฟลเดอร์ %systemroot%\System32 ให้ย้ายไปยังโฟลเดอร์ %systemroot%\SysWoW64

    3. เรียกใช้คำสั่งต่อไปนี้:

      %systemroot%\SysWoW64\regsvr32 <full path of the DLL>

ข้อความแสดงข้อผิดพลาด Regsvr32

ตารางต่อไปนี้ประกอบด้วยข้อความแสดงข้อผิดพลาด RegSvr32 และสาเหตุที่เป็นไปได้:

ข้อความแสดงข้อผิดพลาด

สาเหตุ

ค่าสถานะของคำสั่ง ""%1"" ไม่ถูกต้อง โปรดตรวจทานการใช้คำสั่ง แล้วลองใหม่อีกครั้ง

มีการส่งต่อตัวเลือกร่วมกันไม่ถูกต้องในบรรทัดคำสั่งไปยัง regsvr32.exe

คำสั่งนี้ใช้ได้เฉพาะเมื่อเปิดโครงการ Microsoft Visual Studio OLE Activex Control

Regsvr32.exe ถูกเรียกโดย Visual Studio แต่ไม่มีโมดูลที่ระบุในบรรทัดคำสั่ง

หากจะลงทะเบียนโมดูล คุณต้องให้ชื่อแบบไบนารี

Regsvr32.exe ถูกเรียกโดยไม่ได้ระบุโมดูลต่างๆ ในบรรทัดคำสั่ง

เรียกใช้คำสั่ง OleInitialize ไม่สำเร็จ คอมพิวเตอร์ของคุณอาจมีหน่วยความจำน้อย ให้ปิดโปรแกรมต่างๆ ที่เปิดอยู่ แล้วพยามเรียกใช้คำสั่งอีกครั้ง

Regsvr32 ต้องเตรียมใช้งานไลบรารี COM ก่อนที่จะสามารถเรียกใช้ฟังก์ชันต่างๆ ของไลบรารี COM ได้และยกเลิกไบบรารีเมื่อปิดระบบ ข้อความแสดงข้อผิดพลาดเหล่านี้เกิดขึ้นหากความพยายามในการเตรียมใช้งานหรือยกเลิกการเตรียมใช้งานไลบรารี COM ไม่สำเร็จ

โมดูล ""%1"" ไม่สามารถโหลดได้ \n\n ตรวจสอบให้แน่ใจว่าเก็บไบนารีไว้ในพาธที่กำหนด หรือแก้ไขจุดบกพร่องเพื่อตรวจสอบปัญหาด้วยไบนารีหรือแฟ้ม .DLL ที่อ้างอิง \n\n%2

เกิดข้อผิดพลาดในการโหลดโมดูลที่ถูกระบุในบรรทัดคำสั่ง ข้อความข้อผิดพลาดจะแสดงเป็นส่วนหนึ่งของข้อความ

โมดูล ""%1"" ถูกโหลด แต่ไม่พบจุดเข้าใช้งาน %2 \n\n ตรวจสอบให้แน่ใจว่า ""%1"" เป็นแฟ้ม DLL หรือ OCX ที่ถูกต้อง แล้วลองอีกครั้ง

Regsvr32.exe ไม่สามารถค้นหาจุดเข้าใช้งานที่ต้องการในโมดูลที่ระบุในบรรทัดคำสั่ง ซึ่งอาจเกิดขึ้นถ้าจุดเข้าใช้งานไม่ถูกส่งออกอย่างถูกต้องจากโมดูลหรือถ้าโมดูลไม่ใช่แฟ้ม .DLL หรือ .OCX

โมดูล ""%1"" ถูกโหลด แต่การเรียกใช้ %2 ล้มเหลวโดยมีรหัสข้อผิดพลาด %3 \n\n สำหรับข้อมูลเพิ่มเติมเกี่ยวกับปัญหานี้ ให้ค้นหาแบบออนไลน์โดยใช้รหัสข้อผิดพลาดเป็นคำค้นหา

มีข้อผิดพลาดเมื่อ regsvr32.exe เรียกจุดเข้าใช้งานในโมดูลที่ระบุในบรรทัดคำสั่ง รหัสข้อผิดพลาดจะแสดงขึ้นเป็นส่วนหนึ่งของข้อความ

โมดูล ""%1"" อาจเข้ากับ Windows รุ่นที่คุณกำลังเรียกใช้ไม่ได้ ตรวจสอบว่าโมดูลนี้เข้ากับ regsvr32.exe รุ่น x86 (32-บิต) หรือ x64 (64-บิต) หรือไม่

ข้อผิดพลาดนี้อาจเกิดขึ้น เช่น ถ้า regsvr32.exe ทำงานบนคอมพิวเตอร์ x86 และโมดูลที่ระบุในบรรทัดคำสั่งคือโมดูล 64 บิต


ตารางต่อไปนี้ประกอบด้วยข้อความแสดงข้อผิดพลาด RegSvr32 และสาเหตุที่เป็นไปได้:

ข้อความแสดงข้อผิดพลาด

สาเหตุ

Unrecognized flag: /invalid_flag

คุณพิมพ์การรวมกันของค่าสถานะหรือสวิตช์ที่ไม่ถูกต้อง

No DLL name specified.

คุณไม่ได้ใส่ชื่อไฟล์ .dll

โหลด Dll_Name แล้ว แต่ไม่พบจุดเข้าใช้งาน DllRegisterServer หรือ DllUnregisterServer

ชื่อ Dll ที่ระบุไม่ใช่แฟ้ม .dll หรือ .ocx เช่น การพิมพ์ regsvr32 wjview.exe จะสร้างข้อความแสดงข้อผิดพลาดนี้

Dll_Name ไม่ใช่ไฟล์ที่สามารถปฏิบัติการได้และไม่มีตัวช่วยการลงทะเบียนสำหรับไฟล์ประเภทนี้

ชื่อ Dll ที่ระบุไม่ใช่แฟ้มที่สั่งงาน (.exe, .dll, หรือ .ocx) ตัวอย่างเช่น การพิมพ์ regsvr32 autoexec.bat จะสร้างข้อความแสดงข้อผิดพลาดนี้

Dll_Name ไม่สามารถลงทะเบียนได้ด้วยตนเองหรือมีเวอร์ชันที่เสียหายอยู่ในหน่วยความจำ

เช่น การพิมพ์ regsvr32 icwdial.dll ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้ เนื่องจากแฟ้ม Icwdial.dll ไม่สามารถลงทะเบียนได้เอง หากคุณสงสัยว่ามีแฟ้ม Dllname ที่เสียหายในหน่วยความจำ ให้ลองเริ่มระบบคอมพิวเตอร์ใหม่หรือลองแตกแฟ้มรุ่นเดิมใหม่อีกครั้ง

OleInitialize ล้มเหลว (หรือ OleUninitialize ล้มเหลว)

Regsvr32 ต้องเตรียมใช้งานไลบรารี COM ก่อนที่จะสามารถเรียกใช้ฟังก์ชันต่างๆ ของไลบรารี COM ได้และยกเลิกไบบรารีเมื่อปิดระบบ ข้อความแสดงข้อผิดพลาดเหล่านี้เกิดขึ้นหากความพยายามในการเตรียมใช้งานหรือยกเลิกการเตรียมใช้งานไลบรารี COM ไม่สำเร็จ เช่น แฟ้ม Ole32.dll อาจเสียหายหรือเป็นรุ่นที่ไม่ถูกต้อง

LoadLibrary("Dll_Name") ล้มเหลว GetlastError returns 0x00000485

จาก Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND) ซึ่งหมายความว่า "ไม่พบแฟ้มไลบรารีใดๆ ที่จำเป็นต้องเรียกใช้โปรแกรมประยุกต์นี้" ตัวอย่างเช่น การพิมพ์ regsvr32 missing.dll จะส่งข้อความแสดงข้อผิดพลาดกลับมาหากไม่พบไฟล์ Missing.dll

LoadLibrary("Dll_Name") ล้มเหลว GetLastError returns 0x00000002

จาก Winerror.h, 0x00000002 = 2 (ERROR_FILE_NOT_FOUND) ซึ่งหมายความว่า "ระบบไม่สามารถค้นหาแฟ้มที่ระบุได้" หรือไม่พบแฟ้ม DLL ตัวอย่างเช่น การพิมพ์ regsvr32 icwdial.dll ด้วย Tapi32.dll (การพึ่งพา) หายไปจะส่งข้อความแสดงข้อผิดพลาดนี้กลับมา

LoadLibrary("dskmaint.dll") failed. GetLastError returns 0x000001f

จาก Winerror.h, 0x000001f = 31 (ERROR_GEN_FAILURE) ซึ่งหมายความว่า "อุปกรณ์ที่ติดตั้งกับระบบใช้งานไม่ได้" ลักษณะการทำงานนี้อาจเกิดขึ้นได้หากคุณพยายามลงทะเบียนแฟ้ม .dll ของ Win16 ตัวอย่างเช่น การพิมพ์ regsvr32 dskmaint.dll จะส่งข้อความแสดงข้อผิดพลาดนี้กลับมา

DllRegisterServer (หรือ DllUnregisterServer) ใน Dll_Name ล้มเหลว Return code was: string

ค้นหาไฟล์ Winerror.h สำหรับ สตริง ที่ระบุอยู่ในข้อความ


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

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

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

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

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×