轉自: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的‘新增/刪除程式’開啟後一片空白。