簡介
regsvr32命令用于注冊動态鍊接庫文件,是 Windows 系統提供的用來向系統注冊控件或者卸載控件的命令,以命令行方式運行。WinXP及以上系統的regsvr32.exe在windowssystem32文件夾下;2000系統的regsvr32.exe在winntsystem32文件夾下。
regsvr32的用法為: "regsvr32 [/s] [/n] [/i(:cmdline)] dllname”。其中dllname為activex控件文件名,建議在安裝前拷貝到system文件夾下。
基本介紹
regsvr32 [/u] [/s] [/n] [/i[:cmdline]] dllname 其中dllname為activex控件文件名,建議在安裝前拷貝到system文件夾下。
參數
/u
反注冊控件
/s
指定 regsvr32 安靜運行,在成功注冊/反注冊DLL文件的前提下不顯示結果提示框。
/n
指定不調用 DllRegisterServer。此選項必須與 /i 共同使用。
/i:cmdline
調用 DllInstall 将它傳遞到可選的 [cmdline]。在與 /u 共同使用時,它調用 dll 卸載。
dllname
指定要注冊的 dll 文件名。
/?
在命令提示符顯示幫助。
執行方法
1、可以在“開始”--“運行”,調出運行的對話框,也可以使用Win+R熱鍵,然後直接在輸入欄輸入即可
2、在開始--運行 輸入cmd,調出‘命令提示符’窗口,然後再執行regsvr32命令。
例:
要為“Active Directory Schema”注冊 .dll,請在 MS-DOS提示符處鍵入以下命令:
c:regsvr32 schmmgmt.dll
Regsvr32是系統文件
很多朋友都用過Windows系統下提供的regsvr32.exe這個命令。不要瞧不起這個小命令。有時候它可能幫你解決大問題。
組件注冊
注冊一個組件使用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使用
主要功能
輕松修複IE浏覽器
很多經常上網的朋友都有過這樣的經曆:IE不能打開任何新的窗口,用鼠标點擊超鍊接,也沒有任何的反應。這是一般情況下需要重新啟動機器或者重新安裝IE就能解決問題。其實根本沒這麼 麻煩,使用Regsvr32.exe命令就可以輕松搞定。在開始---運行裡輸入“Regsvr32.exe actxprxy.dll”回車 确定;再次輸入運行Regsvr32.exe shdocvw.dll”回車。重新啟動計算機後IE被輕松修複。上網一切正常如初。
在線升級的問題
windows漏洞很多。每隔一段時間都需要使用windows update來升級自己的系統。可這個程序總是出現無法使用的情況。這個時候使用regsvr32.exe又可以幫助我們解決這個問題。開始---運行--輸入regsvr32.exe wupdinfo.dll回車。這是系統重新注冊了Update的組件。重新啟動機器後又可以升級你的系統。
卸載雞肋功能
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文件拷貝到“系統盤符WINDOWSSystem32”目錄下;在“開始→運行”中鍵入“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 filescommon filessystemole dboledb32.dll"
regsvr32 "c:program filescommon filessystemadomsado15.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安全更新,即打漏洞補丁。
regsvr32 jscript.dll
regsvr32 vbscript.dll
可以很好的解決浏覽某些網頁無法正常顯示和功能不正常。修複個别窗口空白,如XP的‘搜索’功能的搜索助理操作面闆空白、系統還原頁面空白和用戶帳戶頁面空白等(可修複把握度100%) 。解決windows media player 9或以上版本打開時提示‘出現内部應用程序錯誤’(可修複把握度100%) 。
可以修複win 2000的‘添加/删除程序’打開後一片空白(可修複把握度99%) 。解決win 2000以WEB方式查看Program Files文件夾和Winnt文件夾時看不到任何文件,以及‘控制面闆’的圖标跑到左邊去的問題。解決網頁上網際快車的右鍵菜單功能無法使用。 在網站中,當右鍵點某個‘下載連接’時,會彈出菜單,選擇‘使用網際快車下載’會再彈出FLASHGET的下載任務頁面,如果發現該功能無反應,那就可能是這個原因:原來這項菜單是調用了FLASHGET目錄下的jc_link.htm文件,這個文件是用VB語言編寫的,所以其作用丢失是動态連接庫vbscript.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
如果你以上問題都嘗試過了還是在關機的時候出現此問題,如果你确認你自己安裝中國工商銀行的反釣魚軟件。
請您卸載此軟件。
十二,恢複顯示桌面
在進行日常的電腦操作時,有時會急需調出桌面,但又不關閉已打開的窗口,Windows對此添加了顯示桌面的快捷鍵,默認在“開始”右邊的第一個快捷方式。有時快捷欄裡顯示桌面圖标會丢失,或被誤删除。這時可以用regsvr32命令來解決。
開始》 運行》 regsvr32 /n /i:u shell32
十三,WMP任務欄
在正常情況下,打開media player并将其最小化,右擊任務欄空白處“工具欄”勾選“windows media player”選項,此時media player将會以最小播放機的形式在任務欄右方顯示。但現在在------“工具欄”上沒有“Windows media player”選項,也就無法将media player轉化為最小播放機的形式在任務欄上顯示了。
解決命令:regsvr32 "%ProgramFiles%Windows Media Playerwmpband.dll