การใช้เครื่องมือ Regsvr32 และข้อผิดพลาด
เมื่อผู้ใช้ Windows ต้องการแก้ไขปัญหาบางอย่างใน Windows หรือ Internet Explorer หรือโปรแกรมอื่นๆ ผู้ใช้ Windows XP สามารถใช้เครื่องมือ Regsvr32 (Regsvr32.exe) เพื่อลงทะเบียนและยกเลิกการลงทะเบียนคอนโทรล OLE เช่น DLL หรือไฟล์ ActiveX Controls (OCX) ต่างๆ ที่ลงทะเบียนได้ด้วยตนเอง
ในกรณีการลงทะเบียนคอนโทรลไม่สำเร็จหรือว่าต้องการข้อมูลเพิ่มเติมสามารถอ่านรายละเอียดได้จากเว็บไซต์ KB140346
เครื่องมือ Regsvr32.exe นั้นจะให้มากับ Internet Explorer 3.0 หรือเวอร์ชันใหม่กว่า โดยบนระบบปฏิบัติการ Windows NT, Windows XP และ Windows Vista นั้นจะติดตั้งในโฟลเดอร์ System32
การใช้งานเครื่องมือ Regsvr32.exe
เครื่องมือ Regsvr32.exe มีอ็อปชันดังนี้
Regsvr32 [/u] [/n] [/i[:cmdline]] dllname
/u - ยกเลิกการลงทะเบียนเซิร์ฟเวอร์
/i - เรียกใช้ DllInstall ที่ส่งผ่านเป็นอ็อปชันเพิ่มเติมของ [cmdline] เมื่อใช้ร่วมกับ /u จะเรียกใช้การยกเลิกการติดตั้ง dll
/n - ไม่เรียกใช้ DllRegisterServer ตัวเลือกนี้ต้องใช้คู่กับ /i
/s – Silent ทำงานโดยไม่แสดงข้อความ (มีเฉพาะใน Windows XP และ Windows Vista)
เมื่อทำการรันคำสั่ง Regsvr32.exe จะพยายามโหลดคอมโพเนนต์และเรียกใช้ฟังก์ชัน DLLSelfRegister หากความพยายามนี้สำเร็จ Regsvr32.exe จะแสดงไดอะล็อกบ็อกซ์แจ้งให้ทราบว่าสำเร็จ หากความพยายามนี้ไม่สำเร็จ Regsvr32.exe จะแสดงข้อความแสดงข้อผิดพลาด ซึ่งอาจมีรหัสข้อผิดพลาด Win32 ซึ่งสามารถข้อมูลเพิ่มเติมสามารถอ่านรายละเอียดได้จากเว็บไซต์ http://support.microsoft.com/kb/193625/ สำหรับรหัสข้อผิดพลาดของ WinInet (12001 ถึง 12156)
ตัวอย่าง: การลงทะเบียนคอนโทรล ActiveX ชื่อ Sample.ocx ด้วยตนเอง ให้พิมพ์คำสั่งต่อไปนี้ที่คอมมานด์พร้อมท์
c:\regsvr32.exe sample.ocx
ข้อความแสดงข้อผิดพลาดของ Regsvr32.exe ใน Windows Vista
รายชื่อต่อไปนี้มีข้อความแสดงข้อผิดพลาดของ RegSvr32 และที่อาจเป็นไปได้
- The command-flag ""%1"" is not valid. Please review the command usage and try again.
สาเหตุ: มีการส่งต่ออ็อปชันร่วมกันไม่ถูกต้องในคอมมานด์ไลน์ไปยัง regsvr32.exe
- This command is only valid if a Microsoft Visual Studio OLE Custom Control project is opened.
สาเหตุ: Regsvr32.exe ถูกเรียกโดย Visual Studio แต่ไม่มีโมดูลที่ระบุในคอมมานด์ไลน์
- To register a module, you must provide a binary name.
สาเหตุ: Regsvr32.exe ถูกเรียกโดยไม่ได้ระบุโมดูลต่างๆ ในคอมมานด์ไลน์.
- The command OleInitialize failed to run. Your computer might be low on memory. Close any open programs and then try again.
สาเหตุ: Regsvr32 ต้องเตรียมใช้งานไลบรารี COM ก่อนที่จะสามารถเรียกใช้ฟังก์ชันต่างๆ ของไลบรารี COM ได้และยกเลิกไบบรารีเมื่อปิดระบบ ข้อความแสดงข้อผิดพลาดเหล่านี้เกิดขึ้น หากความพยายามในการเตรียมใช้งานหรือ ยกเลิกการเตรียมใช้งานไลบรารี COM ไม่สำเร็จ
- The module ""%1"" failed to load.\n\n Make sure the binary is stored at the specified path or debug it to check for problems with the binary or dependent .DLL files.\n\n%2.
สาเหตุ: เกิดข้อผิดพลาดในการโหลดโมดูลที่ถูกระบุในคอมมานด์ไลน์ ข้อความผิดพลาดปรากฏเป็นส่วนหนึ่งของข้อความ
- The module ""%1"" was loaded but the entry-point %2 was not found.\n\nMake sure that ""%1"" is a valid DLL or OCX file and then try again
สาเหตุ: Regsvr32.exe ไม่พบจุดเข้าใช้งานที่ต้องการในโมดูลที่ระบุในคอมมานด์ไลน์ ปัญหานี้อาจเกิดขึ้นได้หากไม่ได้ส่งออกจุดเข้าใช้งานจากโมดูลอย่างเหมาะสม หรือหากโมดูลนี้ไม่ใช่แฟ้ม .DLL หรือ .OCX
- The module ""%1"" was loaded but the call to %2 failed with error code %3.\n\nFor more information about this problem, search online using the error code as a search term.
สาเหตุ: เกิดข้อผิดพลาดเมื่อ regsvr32.exe เรียกจุดเข้าใช้งานในโมดูลที่ระบุอยู่ในคอมมานด์ไลน์ รหัสข้อผิดพลาดปรากฏเป็นส่วนหนึ่งของข้อความ
- The module ""%1"" may not compatible with the version of Windows that you're running. Check if the module is compatible with an x86 (32-bit) or x64 (64-bit) version of regsvr32.exe.
สาเหตุ: ข้อผิดพลาดนี้อาจเกิดขึ้นได้ ตัวอย่างเช่น หากเรียกใช้ regsvr32.exe บนเครื่องรุ่น x86 และโมดูลที่ระบุในคอมมานด์ไลน์เป็นโมดูลแบบ 64-บิต
ข้อความแสดงข้อผิดพลาดของ Regsvr32.exe ในวินโดวส์เวอร์ชันก่อน Windows Vista
รายชื่อต่อไปนี้มีข้อความแสดงข้อผิดพลาด RegSvr32 และสาเหตุที่อาจเป็นไปได้
- Unrecognized flag: /invalid_flag
สาเหตุ: พิมพ์สถานะหรือสวิตช์ร่วมกันไม่ถูกต้อง
- No DLL name specified.
สาเหตุ: ไม่ได้พิมพ์ชื่อแฟ้ม .dll
- Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
สาเหตุ: Dllname ไม่ใช่แฟ้ม .dll หรือ .ocx ตัวอย่างเช่น การพิมพ์ regsvr32 wjview.exe ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้
- Dllname is not an executable file and no registration helper is registered for this file type.
สาเหตุ: Dllname ไม่ใช่แฟ้มที่เรียกใช้งานได้ (.exe, .dll หรือ .ocx) ตัวอย่างเช่น การพิมพ์ regsvr32 autoexec.bat ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้
- Dllname was loaded, but the DllRegisterServer or DllUnregisterServer entry point was not found.
สาเหตุ: Dllname ไม่ถูกส่งออกหรือมี Dllname รุ่นที่เสียหายในหน่วยความจำ ให้ลองใช้ Pview เพื่อตรวจหาแฟ้มแล้วลบแฟ้มนั้นทิ้ง
- Dllname is not self-registerable or a corrupted version is in memory.
สาเหตุ: เช่น การพิมพ์ regsvr32 icwdial.dll ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้ เนื่องจากแฟ้ม Icwdial.dll ไม่สามารถลงทะเบียนได้เอง หากสงสัยว่ามีแฟ้ม Dllname ที่เสียหายในหน่วยความจำ ให้ลองเริ่มระบบคอมพิวเตอร์ใหม่หรือลองแตกแฟ้มรุ่นเดิมใหม่อีกครั้ง
- OleInitialize failed (หรือ OleUninitialize failed).
สาเหตุ: Regsvr32 ต้องเตรียมใช้งานไลบรารี COM ก่อนที่จะสามารถเรียกใช้ฟังก์ชันต่างๆ ของไลบรารี COM ได้และยกเลิกไลบรารีเมื่อปิดระบบ ข้อความแสดงข้อผิดพลาดเหล่านี้เกิดขึ้นหากความพยายามในการเตรียมใช้งานหรือ ยกเลิกการเตรียมใช้งานไลบรารี COM ไม่สำเร็จ เช่น แฟ้ม Ole32.dll อาจเสียหายหรือเป็นรุ่นที่ไม่ถูกต้อง
- LoadLibrary("Dllname") failed. GetlastError returns 0x00000485
สาเหตุ: จาก Winerror.h, 0x00000485 = 1157 (ERROR_DLL_NOT_FOUND) ซึ่งหมายความว่า "ไม่พบแฟ้มไลบรารีที่ต้องการเพื่อใช้แอปพลิเคชันนี้" เช่น การพิมพ์ regsvr32 missing.dll ทำให้เกิดข้อความแสดงข้อผิดพลาดนี้ เนื่องจากไม่พบแฟ้ม Missing.dll
- LoadLibrary("Dllname") failed. 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 (or DllUnregisterServer)in Dllname failed. Return code was: string
สาเหตุ: ค้นหา Winerror.h เพื่อหา สตริงนั้น
บทความโดย: Thai Windows Administrator Blog
ที่มา
• Explanation of Regsvr32 usage and error messages
Copyright © 2008 TWA Blog. All Rights Reserved.
Friday, March 28, 2008
Regsvr32 usage and error messages
Related Posts:
Windows Server 2008: Update from WSUSการคอนฟิก Windows Server 2008 ให้อัพเดทจาก WSUS สำหรับหน่วยงานหรือองค์กร ที่มีการติดตั้งให้บริการเครื่อเซิร์ฟเวอร์ WSUS นั้น สามารถที่จะกำหนดให้เครื่อง Windows Vista ทำการอัพเดทจากเซิร์ฟเวอร์ WSUS ขององค์ได้ โดยวิธีการคอนฟิก … Read More
What's new in Windows 7 Games Explorerสำรวจฟีเจอร์ใหม่ใน Windows 7 Games Explorer Games Explorer ซึ่งเป็นเครื่องมือที่ผู้ใช้สามารถใช้ในการเปิดและจัดการกับเกม ทั้งเกมที่มีมาพร้อมกับระบบปฏิบัติการ Windows และเกมคอมพิวเตอร์อื่นๆ (อ่านรายชื่อเกมทั้งหมดได้ที่เว็บไซต์ … Read More
The 10 Common Windows Security Vulnerabilitiesช่องโหว่ความปลอดภัย 10 ข้อที่พบบ่อยในระบบ Windows บทความนี้ผมรวบรวมปัยหาเกี่ยวกับช่องโหว่ความปลอดภัยที่พบได้บ่อยในระบบปฏิบัติการ Windows จำนวน 10 ข้อมาฝากครับ 1. แชร์ไฟล์และโฟลเดอร์ โดยกำหนดให้ทุกคน (Everyone) มีสิทธิ์แบบฟูล… Read More
Windows 7 with 10 things to do - Part 110 สิ่งแรกที่คุณต้องทำกับ Windows 7 ตอนที่ 1/2 บทความนี้มีคำแนะนำจากไมโครซอฟท์เกี่ยวกับ 10 สิ่งแรกที่คุณต้องทำหลังในทันทีจากทำการติดตั้งระบบปฏิบัติการ Windows 7 บนเครื่องคอมพิวเตอร์เสร็จเรียบร้อยแต่เนื่องจากเนื้อหาค่อนข้างยาว… Read More
How to connect Windows 7 to a Wireless Networkการใช้งาน Wireless Network ใน Windows 7 บทความนี้ผมจะสาธิตวิธีการใช้งานระบบเครือข่ายไร้สาย (Wireless Network) ในระบบปฏิบัติการ Windows 7 โดยจะเป็นการเชื่อมต่อเครื่องคอมพิวเตอร์โน้ตบุ๊ค Windows 7 เข้ากับระบบเครือข่ายไร้สายผ่า… Read More
0 Comment:
Post a Comment