複製鏈接
請複製以下鏈接發送給好友

Regsvr32

鎖定
Regsvr32命令用於註冊COM組件,是Windows系統提供的用來向系統註冊控件或者卸載控件的命令,以命令行方式運行。WinXP及以上系統的regsvr32.exe在windows\system32文件夾下;2000系統的regsvr32.exe在winnt\system32文件夾下。
外文名
Regsvr32
定    義
用於註冊動態鏈接庫文件
提供方
Windows 系統
參    數
/u、/s、/n

Regsvr32語法

Regsvr32 Regsvr32
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname為activex控件文件名,建議在安裝前拷貝到system文件夾下。

Regsvr32參數

/u
反註冊控件
/s
指定 regsvr32 安靜運行,在成功註冊/反註冊DLL文件的前提下不顯示結果提示框。
/n
指定不調用 DllRegisterServer。此選項必須與 /i 共同使用。
/i:cmdline
調用 DllInstall 將它傳遞到可選的 [cmdline]。在與 /u 共同使用時,它調用 dll 卸載。
dllname
指定要註冊的 dll 文件名。
/?
命令提示符顯示幫助。

Regsvr32執行方法

1、可以在“開始”--“運行”,調出運行的對話框,也可以使用Win+R熱鍵,然後直接在輸入欄輸入即可
2、在開始--運行 輸入cmd,調出‘命令提示符’窗口,然後再執行regsvr32命令。
例:
要為“Active Directory Schema”註冊 .dll,請在 MS-DOS提示符處鍵入以下命令:
c:\regsvr32 schmmgmt.dll
Regsvr32是系統文件
很多朋友都用過Windows系統下提供的regsvr32.exe這個命令。不要瞧不起這個小命令。有時候它可能幫你解決大問題。

Regsvr32組件註冊

註冊一個組件使用regsvr32 xxx.dll命令。其中DLL(即xxx.dll)輸出四個函數。DllGetClassObject,DllRegisterServer,DllUnregisterServer和DllMain。下面簡單介紹這四個函數的用途 DllGetClassObject用於返回classfactory對象指針,classfactory用於創建組件實例,詳情參看《COM技術內幕》
DllRegisterServer由詞義看出其用於註冊組件,在windows的註冊表中給某個dll的登記。注意DLL(xxx.dll)內部包含一個或多個組件。regsvr32 -s xxx.dll即regsvr32調用xxx.dll中的此函數完成組件的註冊。多説一句,註冊是為了能夠索引到xxx.dll然後創建組件。
DllUnregisterServer在windows的註冊表中取消某個dll的登記
DllMain:c++程序有一個main函數作為程序入口,windows程序使用WinMain作為程序入口,Dll使用的是DllMain作為入口。主要用於獲取模塊句柄。下面是其實現方式
BOOL APIENTRY DllMain(HINSTANCE hModule,DWORD dwReason, void* lpReserved)
{
if(dwReason==DLL_PROCESS_ATTACH)
{
g_hModule=hModule;
}
}
可以看到,DllMain將模塊句柄保存到一個全局g_hModule中,以供DllregisterServer和DllUnregisterServer使用

Regsvr32主要功能

輕鬆修復IE瀏覽器
很多經常上網的朋友都有過這樣的經歷:IE不能打開任何新的窗口,用鼠標點擊超鏈接,也沒有任何的反應。一般情況下重新啓動機器或者重新安裝IE就能解決問題。其實根本沒這麼麻煩,使用Regsvr32.exe命令就可以輕鬆搞定。在開始---運行裏輸入“Regsvr32.exe actxprxy.dll”回車 確定;再次輸入運行Regsvr32.exe shdocvw.dll”回車。重新啓動計算機後IE被輕鬆修復。上網一切正常如初。
在線升級問題
windows漏洞很多。每隔一段時間都需要使用windows update來升級自己的系統。可這個程序總是出現無法使用的情況。這個時候使用regsvr32.exe又可以幫助我們解決這個問題。開始---運行--輸入regsvr32.exe wupdinfo.dll回車。這是系統重新註冊了Update的組件。重新啓動機器後有可以升級你的系統。
網頁不顯示PNG圖片
在運行輸入框中輸入“regsvr32 pngfilt.dll”(不含雙引號),然後點擊確定,刷新網頁或重啓程序即可。如果在註冊時出現“已加載c:\windows\system32\pngfilt.dll,但沒有找到DllRegisterSever 輸入點,無法註冊這個文件”,則表明這個文件可能損壞了,請百度搜索pngfilt.dll下載後複製到c:\windows\system32\覆蓋原文件(覆蓋時如果提示佔用,請關閉無關程序後用文件粉碎機粉碎原文件後再試),並重新運行regsvr32。如果出現“c:\windows\system32\pngfilt.dll 中的DllRegisterServer 成功”,説明問題已經解決。
卸載系統自帶ZIP/圖片預覽功能
XP系統中有的服務不僅佔用系統資源嚴重,而且功能要強不強,要弱不弱。根本不如一些專業的軟件來的方便。比如它的圖片預覽功能和ZIP壓縮功能。這個時候我們就可以使用regsvr32.exe工具來卸載掉這些雞肋。開始--運行---輸入regsvr32.exe /u zipfldr.dll就可以卸載掉功能。如以後需要這個功能,只需要再次輸入regsvr32 zipfldr.dll即可。同樣,開始-運行---輸入regsvr32.exe /u thumbvw.dll就可以卸載掉圖片預覽功能。需要恢復時輸入regsvr32 thumbvw.dll。
網絡腳本病毒會在你瀏覽網頁的同時不知不覺的被感染。這種病毒有時候一般的殺毒軟件根本查不到。其實這種病毒很多情況下都是調用了FSO對象(file system object文件系統對象)。因此我們只需要禁止FSO就可以有效的防止這種病毒的傳播。操作的方法也很簡單。開始-運行--輸入“regsvr32.exe /u scrrun.dll就可以禁用FSO。需要時輸入regsvr32.exe scrrun.dll即可。 相信很多朋友看見上面的介紹多少對regsvr32.exe都有了一些瞭解。其實這個命令是windows中控件文件(擴展名為.dll ,.ocx,.cpl)的註冊和反註冊工具。這個命令在WIN98下的位置在/WINDOWS/SYSTEM中。其實一般情況下,所謂的註冊的意義就是把一些控件文件放在它應該在的位置上(不嚴格的説)。而有一些系統的控件或者其它情況下用這個命令就方便的多。關於這個命令的參數,請大家參考此貼的第一個圖。一般情況下只用到/U這個參數。
修復縮略圖文件
2000: 開始→運行,輸入regsvr32 thumbvw.dll
XP: 開始→運行,輸入regsvr32 shimgvw.dll(注:這條主要是解決windows圖片和傳真查看器的右鍵沒有“設為桌面背景”的!)
WMP播放器支持RM
很多朋友喜歡用Windows Media Player(以下簡稱WMP)播放器,但是它不支持RM格式,難道非得安裝其它播放軟件嗎? 以Win XP為例,首先下載一個RM格式插件,解壓縮後得到兩個文件夾: Release(用於Windows 9x)和Release Unicode (用於Windows 2000/XP);將Release Unicode文件夾下的RealMediaSplitter文件拷貝到“C:\WINDOWS\System32\”目錄下;在“開始→運行”中鍵入“regsvr32 RealMediaSplitter”,點擊“確定”即可。接着下載解碼器,如Real Alternative,安裝後就能用WMP播放RM格式的影音文件了。
WMP9播放器
有些音樂網頁的在線點歌需要用到Media Player,有的朋友明明安裝了WMP9,但在線聽音樂卻只看到枯燥的WMP6播放器面板,想讓漂亮的WMP9面板出現,當然沒問題的。 常見問題的操作系統多數WIN 98,先關閉IE,再在“開始→運行”中鍵入“regsvr32 wmpdxm.dll”,點擊“確定”即可。
系統功能無反應
regsvr32 shdocvw.dll
有時從開始菜單裏點擊XP系統的搜索功能、幫助和支持或管理工具等,但就是無任何反應,這是它們的打開方式缺少關聯,所以我們只要用regsvr32註冊它們需要調用的動態連接庫文件就行了。
添加/刪除程序
當打開控制面板中的添加/刪除程序時,雙擊它的圖標後無反應,或者打開後自動關閉了,嘗試使用以下命令可以解決。
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 nusrmgr.cpl
regsvr32 mshtml.dll
regsvr32 jscript.dll
regsvr32 /i shdocvw.dll
在線升級的問題
regsvr32 wupdinfo.dll 雖然這個命令能修復,但治標不治本,我建議遇到此問題的朋友到微軟網站進行IE安全更新,即打漏洞補丁。
在進行日常的電腦操作時,有時會急需調出桌面,但又不關閉已打開的窗口,Windows對此添加了顯示桌面的快捷鍵,默認在“開始”右邊的第一個快捷方式。有時快捷欄裏顯示桌面圖標會丟失,或被誤刪除。這時可以用regsvr32命令來解決。
開始》 運行》 regsvr32 /n /i:u shell32
在正常情況下,打開media player並將其最小化,右擊任務欄空白處“工具欄勾選“windows media player”選項,此時media player將會以最小播放機的形式在任務欄右方顯示。如果“工具欄”上沒有“Windows media player”選項,也就無法將media player轉化為最小播放機的形式在任務欄上顯示。
解決命令:regsvr32 "%ProgramFiles%\Windows Media Player\wmpband.dll
Regsvr32.exe 錯誤消息
以下列表介紹了 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
如果你以上問題都嘗試過了還是在關機的時候出現此問題,如果你確認你自己安裝中國工商銀行反釣魚軟件。
請您卸載此軟件