Regsvr32

Regsvr32

Regsvr32命令用於註冊COM組件,是 Windows 系統提供的用來向系統註冊控制項或者卸載控制項的命令,以命令行方式運行。WinXP及以上系統的regsvr32.exe在windows\system32資料夾下;2000系統的regsvr32.exe在winnt\system32資料夾下。

基本介紹

  • 外文名:Regsvr32
  • 定義:用於註冊動態程式庫檔案
  • 提供方:Windows 系統
  • 參數:/u、/s、/n
語法,參數,執行方法,組件註冊,主要功能,

語法

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 檔案名稱
/?
命令提示符顯示幫助。

執行方法

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的組件。重新啟動機器後有可以升級你的系統。
網頁不顯示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
WMP系統列
在正常情況下,打開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
如果你以上問題都嘗試過了還是在關機的時候出現此問題,如果你確認你自己安裝中國工商銀行的反釣魚軟體。
請您卸載此軟體

相關詞條

熱門詞條

聯絡我們