如何註冊ocx檔案

pamxy發表於2013-03-25
轉自:http://zhidao.baidu.com/question/32363441.html
檔案Regsvr32用法及情況介紹 

使用過activex的人都知道,activex不註冊是不能夠被系統識別和使用的,一般安裝程式都會自動地把它所使用的activex控制元件註冊,但如果你拿到的一個控制元件需要手動註冊怎麼辦呢?如果修改登錄檔那就太麻煩了,在windows的system資料夾下有一個regsvr32.exe的程式,它就是windows自帶的activex註冊和反註冊工具。 

一、regsvr32的用法為: 
“regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname為activex控制元件檔名,建議在安裝前拷貝到system資料夾下。 

引數有如下意義: 

/u——反註冊控制元件 

/s——不管註冊成功與否,均不顯示提示框 

/c——控制檯輸出 

/i——跳過控制元件的選項進行安裝(與註冊不同) 

/n——不註冊控制元件,此選項必須與/i選項一起使用 

執行該命令的方法: 

1、可以在“開始”--“執行”,調出執行的對話方塊,也可以使用Win+R熱鍵,然後直接在輸入欄輸入即可 
2、在開始--執行 輸入cmd,調出‘命令提示符’視窗,然後再執行regsvr32命令。 

二、Regsvr32錯誤訊息的說明 
當使用 Regsvr32.exe 時,它會嘗試載入該元件並呼叫它的 DLLSelfRegister 函式。如果此嘗試成功,Regsvr32.exe 會顯示一個指示成功的對話方塊。如果此嘗試失敗,Regsvr32.exe 會返回一條錯誤訊息,其中可能會包括一個 Win32 錯誤程式碼。 

以下列表介紹了 RegSvr32 錯誤訊息和可能的原因。 

Unrecognized flag:/invalid_flag 

鍵入的標誌或開關組合無效(請參閱本文中的“Regsvr32.exe 的用法”一節)。 

No DLL name specified. 

未包括 .dll 檔名(請參閱本文中的“Regsvr32.exe 的用法”一節)。 

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 版本,請嘗試重新啟動計算機,或重新提取該檔案的原始版本。 

如果您執行的是 Windows NT,可能需要使用 Microsoft Windows NT Server 4.0 資源工具包 中的 Kill 或 Pview 工具。有關其他資訊,請單擊以檢視以下 Microsoft 知識庫文章: 197155 如何終止孤立程式 
OleInitialize failed (or 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),表示“附加到系統上的裝置不能正常工作”。如果您嘗試註冊 Win16 .dll 檔案,就會發生此現象。例如,鍵入 regsvr32 dskmaint.dll 會返回該錯誤訊息。 

DllRegisterServer (or DllUnregisterServer)in Dllname failed.返回程式碼是:字串 

在 Winerror.h 中搜尋字串。 
Regsvr32.exe 和依賴項 
RegSvr32.exe 依賴於 Kernel32.dll、User32.dll 和 Ole32.dll 檔案(在 Windows NT 中,還依賴於 Msvcrt.dll 和 Advapi32.dll 檔案)。Regsvr32.exe 會載入您嘗試註冊或撤消註冊的檔案及其所有依賴項。如果缺少必需的檔案或者它們已損壞,該程式可能會失敗。 

您可以使用 Depends.exe 來確定您嘗試註冊或撤消註冊的檔案的依賴項。在 Microsoft Windows 98 資源工具包 和 Microsoft Windows NT 4.0 資源工具包 支援工具中都提供了 Depends.exe。 
247024 Tools Included with the Microsoft Windows 98 Resource Kit 

三、一個快速註冊 DLL 及 OCX 的方法 

注意看羅!方法如下: 

1、在資源管理器中找到 C:\Windows\System\Regsvr32.exe 並【複製】 ( 按滑鼠右鍵選複製 ) 
2、將目錄移到 C:\Windows\SendTo 後,執行【貼上快捷方式】 ( 按滑鼠右鍵選貼上快捷方式 ) 
3、將快捷方式名稱改成【REGISTER】 
4、OK 

現在,如果您想替某一個檔案做註冊動作,例如:C:\Windows\System\Test.ocx,您只要開啟資源管理器,找到 C:\Windows\System\Test.ocx,按滑鼠右鍵選【傳送到】【REGISTER】即可完成註冊動作了! 

注:有一個地方要注意的是,Regsvr32.exe 只能註冊 32 位的檔案!如果要用它來註冊 16 位的檔案,會有錯誤訊息產生。 
一、輕鬆修復IE瀏覽器 

regsvr32 Shdocvw.dll 
regsvr32 Oleaut32.dll 
regsvr32 Actxprxy.dll 
regsvr32 Mshtml.dll 
regsvr32 Urlmon.dll 

作用: 
1、同時執行以上命令不僅可以解決IE不能開啟新的視窗,用滑鼠點選超連結也沒有任何反應的問題; 
2、還能解決大大小小的其它IE問題,比如網頁顯示不完整,JAVA效果不出現,網頁不自動跳轉,開啟某些網站時總提示‘無法顯示該頁’等。 

二、解決Windows無法線上升級的問題 

regsvr32 wupdinfo.dll 

作用: 
Windows的漏洞很多,每隔一段時間就需要使用“Windows Update”升級程式進行線上升級,不過“Windows Update”經常出現無法使用的情況,這時,我們可以使用Regsvr32來解決這個問題。 

三、防範網路指令碼病毒有新招 

regsvr32 /u scrrun.dll 

作用: 
網路指令碼病毒嵌在網頁中,上網時在不知不覺中機器就會感染上這種病毒。筆者認為單純使用防毒軟體並不能有效地防範這些指令碼病毒,必須從病毒傳播的機理入手。網路指令碼病毒的複製、傳播都離不開FSO物件(File System Object,檔案系統物件),因此禁用FSO物件就能有效地控制指令碼病毒的傳播。 
如果需要使用FSO物件,鍵入“regsvr32 scrrun.dll”命令即可。 

四、解除安裝Win XP自帶的ZIP功能 

regsvr32 /u zipfldr.dll 

作用: 
Win XP以功能強大而著稱,但有些功能卻常常令人有“雞肋”之感,比如Win XP自帶的ZIP功能和圖片預覽功能,不僅佔用了系統資源,功能也遠不如第三方軟體強大。其實用Regsvr32命令可以很容易地解除安裝這些功能。 

五、修復無法縮圖檢視檔案問題 

2000: 開始→執行,輸入regsvr32 C:\Winnt\System32\thumbvw.dll 
XP: 開始→執行,輸入regsvr32 shimgvw.dll 

六、讓WMP播放器支援RM格式 

很多朋友喜歡用Windows Media Player(以下簡稱WMP)播放器,但是它不支援RM格式,難道非得安裝其它播放軟體嗎?筆者有辦法。 

以Win XP為例,首先下載一個RM格式外掛,解壓縮後得到兩個資料夾: Release(用於Windows 9x)和Release Unicode (用於Windows 2000/XP);將Release Unicode資料夾下的RealMediaSplitter.ax檔案拷貝到“系統碟符\WINDOWS\System32\”目錄下;在“開始→執行”中鍵入“regsvr32 RealMediaSplitter.ax”,點選“確定”即可。接著下載解碼器,如Real Alternative,安裝後就能用WMP播放RM格式的影音檔案了。 

七、讓WMP9的播放器出現 

有些音樂網頁的線上點歌需要用到Media Player,有的朋友明明安裝了WMP9,但線上聽音樂卻只看到枯燥的WMP6播放器皮膚,想讓漂亮的WMP9皮膚出現,當然沒問題的。 

常見問題的作業系統多數WIN 98,先關閉IE,再在“開始→執行”中鍵入“regsvr32 wmpdxm.dll”,點選“確定”即可。 

八、解決開啟系統功能時無反應 

regsvr32 shdocvw.dll 

作用: 
有時從開始選單裡點選XP系統的搜尋功能、幫助和支援或管理工具等,但就是無任何反應,這是它們的開啟方式缺少關聯,所以我們只要用regsvr32註冊它們需要呼叫的動態連線庫檔案就行了。 

九、新增/刪除程式打不開了 

regsvr32 appwiz.cpl 
regsvr32 mshtml.dll 
regsvr32 jscript.dll 
regsvr32 msi.dll 
regsvr32 c:\program files\common files\system\ole db\oledb32.dll 
regsvr32 c:\program files\common files\system\ado\msado15.dll 
regsvr32 mshtmled.dll 
regsvr32 /i shdocvw.dll 
regsvr32 /i shell32.dll 

作用: 
當開啟控制皮膚中的新增/刪除程式時,雙擊它的圖示後無反應,或者開啟後自動關閉了,嘗試使用以上命令可以解決。 
猜不透的神祕命令 - regsvr32 jscript.dll 



1、跟上面講的修復IE瀏覽器方法配合使用,可以很好的解決瀏覽某些網頁顯示不完整,並且有可能解決IE狀態列顯示‘網頁上有錯誤’的提示。下圖以上網助手首頁為例: 

Click here to open new window 



2、跟命令regsvr32 vbscript.dll配合使用,修復個別視窗空白,如XP的‘搜尋’功能的搜尋助理操作皮膚空白及系統還原功能無法使用等。 





3、解決windows media player 9或以上版本開啟時提示‘出現內部應用程式錯誤’。 







4、可以修復win 2000的‘新增/刪除程式’開啟後一片空白。

相關文章