【簡(jiǎn) 介】
Regsvr32的背景與功能
Regsvr32是一個(gè)Windows系統(tǒng)的內(nèi)嵌
程序,不僅存在于Windows 2000 / XP下,同時(shí)也能在Windows 98中找到它的身影。它的主要功能就是注冊(cè)或卸載動(dòng)態(tài)鏈接庫(kù)文件(DLL)和
嵌入式控件(OCX).
基礎(chǔ)篇
DLL文件
LL文件全稱(chēng)是Dynamic Link Library,中文名字叫做“動(dòng)態(tài)鏈接庫(kù)文件”。在Windows系統(tǒng)中,DLL文件就象EXE文件一樣能夠完成某項(xiàng)功能,但它卻無(wú)法像EXE文件那樣獨(dú)立運(yùn)行,必須由其他程序來(lái)調(diào)用它,而它對(duì)于程序的執(zhí)行也是非常重要的,大多數(shù)的程序或系統(tǒng)組件在執(zhí)行時(shí),都必須鏈接到DLL文件才能正常運(yùn)行。換言之,DLL文件就像是
數(shù)據(jù)庫(kù)中一個(gè)個(gè)公用的函數(shù)庫(kù),每位設(shè)計(jì)人員都可以在自己的程序中隨意調(diào)用它們,這樣,不僅不用自己再去編寫(xiě)一些基礎(chǔ)功能(因?yàn)檫@些功能都已經(jīng)由DLL文件完成了),而且還可以讓程序的體積更加小巧。因此,如果某個(gè)DLL文件發(fā)生丟失,就有可能造成某個(gè)
軟件或某個(gè)系統(tǒng)模塊發(fā)生故障而無(wú)法正常工作。
OCX文件:OCX文件的全稱(chēng)是Object Linking and Embedding (OLE) Control Extension,中文名字叫做“嵌入式對(duì)象控件”,它的作用其實(shí)和剛才談到的DLL文件特別相像,其實(shí)所謂的OLE我們平時(shí)已經(jīng)非常熟悉了,簡(jiǎn)單地說(shuō)就像在Word中可以使用Excel數(shù)據(jù),寫(xiě)字板中可以嵌入圖片文件等等這些功能。打個(gè)比方的話,剪貼板就像是個(gè)簡(jiǎn)單的數(shù)據(jù)共享,而OLE則是一種“對(duì)象共享”。
剛才我們談到Regsvr32的功能是注冊(cè)與卸載DLL文件的,那么現(xiàn)在又有一個(gè)問(wèn)題困擾著我們,既然DLL文件起到的就是公用函數(shù)庫(kù)的作用,為什么我們不能直接在程序里調(diào)用,還要進(jìn)行一次注冊(cè)呢?其實(shí),這里注冊(cè)DLL文件的道理就像是我們第一次入學(xué),雖然你坐在教室里,但是如果沒(méi)有寫(xiě)你的檔案,老師是不會(huì)認(rèn)識(shí)你的,自然也就不會(huì)找到你。同樣道理,如果DLL文件沒(méi)有注冊(cè),系統(tǒng)注冊(cè)表中就沒(méi)有這個(gè)DLL文件的相關(guān)信息,雖然它已經(jīng)存在于我們的硬盤(pán)上,但等到調(diào)用的時(shí)候,系統(tǒng)也就根本找不到這個(gè)DLL文件而只能報(bào)告沒(méi)有這個(gè)DLL存在了,所以在這個(gè)時(shí)候就需要我們注冊(cè)DLL文件了。
【小提示】 Windows系統(tǒng)的DLL因?yàn)樵诎惭b時(shí)已經(jīng)注冊(cè)好了,因此不用注冊(cè),但是如果因?yàn)槟撤N情況系統(tǒng)無(wú)法識(shí)別這些DLL文件時(shí),還是需要我們手動(dòng)再注冊(cè)一遍。
Regsvr32命令格式
大家知道,凡是命令肯定都有一個(gè)格式,Regsvr32也不例外。我們以Windows XP為例,在“開(kāi)始”菜單→“運(yùn)行”欄中執(zhí)行“CMD”命令,打開(kāi)命令提示行窗口,輸入Regsvr32命令后回車(chē),就會(huì)看到Regsvr32的命令格式“Regsvr32 [ /u ][ /s ][ /n ][ /i [ :cmdline ] ] dll文件名”,
由上可知,Regsvr32命令一共有四個(gè)參數(shù),分別是:
/s:注冊(cè)或卸載成功后不顯示操作成功的提示框
/u:卸載已安裝的控件或DLL文件
/n:不調(diào)用DLLRegisterServer,要注意這個(gè)參數(shù)應(yīng)與/i一同使用
/i:調(diào)用DLLInstall,并給其傳遞一個(gè)可選的[ cmdline ];當(dāng)使用/u時(shí)用來(lái)卸載DLL
命令的講解往往都枯燥難懂,下面咱們就借助一個(gè)實(shí)例來(lái)進(jìn)一步了解Regsvr32的命令格式。比如我們想注冊(cè)一個(gè)保存在C:\Folder目錄中的shmedia.dll動(dòng)態(tài)鏈接庫(kù)文件,那么執(zhí)行的命令就應(yīng)該是“Regsvr32 c:\folder\shmedia.dll”,而如果注冊(cè)過(guò)后打算卸載時(shí)就更簡(jiǎn)單了,執(zhí)行命令“Regsvr32 /u c:\folder\shmedia.dll”就行了。如圖2所示就是正常完成任務(wù)的提示窗口
常見(jiàn)錯(cuò)誤提示
使用Regsvr32命令久后,大家也許會(huì)經(jīng)常看到各種各樣的錯(cuò)誤提示,這里筆者就找了一些比較有代表性的錯(cuò)誤,幫大家來(lái)分析分析。
錯(cuò)誤一:未指定DLL文件的具體路徑
一般出現(xiàn)在注冊(cè)非系統(tǒng)DLL文件時(shí),原因就是Regsvr32程序在默認(rèn)路徑找不到指定的DLL文件,無(wú)法正常完成注冊(cè)。解決的辦法也很簡(jiǎn)單,只要在命令中指定好DLL文件的具體
存儲(chǔ)路徑就行了,比如“Regsvr32 c:\folder\abc.dll”就是一個(gè)正常的命令。
錯(cuò)誤二:要注冊(cè)的文件類(lèi)型錯(cuò)誤
原因就是用戶(hù)欲注冊(cè)的文件根本就不是一個(gè)正常的DLL文件或OCX文件,Regsvr32根本無(wú)法完成注冊(cè)。解決的方法就是指定一個(gè)正常的DLL文件或OCX文件就行了。比如原命令為“Regsvr32 c:\abc\abc.txt”,而正確的命令就應(yīng)該是“Regsvr32 c:\abc\abc.dll”(當(dāng)然,也得保證這個(gè)abc.dll文件已存在并完全正確)
實(shí)例演練
說(shuō)了這么多,大家應(yīng)該對(duì)這個(gè)Regsvr32命令的功能很清楚了,下面咱們就以幾個(gè)常見(jiàn)的實(shí)例來(lái)結(jié)束這篇文章?
實(shí)例一:卸載Windows XP自帶的ZIP文件夾顯示功能
大家可能都知道在Windows XP中默認(rèn)可以顯示ZIP文件夾(壓縮文件夾),但問(wèn)題是大多數(shù)的朋友卻一直在使用第三方解壓縮軟件WinRAR或WinZip,這樣X(jué)P默認(rèn)的那個(gè)ZIP文件夾顯示功能就成了擺設(shè),白白的浪費(fèi)了大量的系統(tǒng)資源。其實(shí),我們就可以利用剛剛學(xué)到的Regsvr32命令來(lái)卸載它。
進(jìn)入命令提示符窗口,執(zhí)行命令:Regsvr32 /u zipfldr.dll 即可。當(dāng)然如果卸載后還想再啟用(估計(jì)很少有朋友會(huì)這么做),只要再執(zhí)行一遍Regsvr32 zipfldr.dll命令就行了。
實(shí)例二:卸載Windows圖片預(yù)覽功能
圖片預(yù)覽功能和上面所說(shuō)的ZIP文件顯示功能如出一轍,在強(qiáng)大的第三方圖片軟件的威脅下,Windows自帶的圖片預(yù)覽功能基本上就和雞肋一般,沒(méi)有任何優(yōu)勢(shì)可言。我們自然也就可以“卸它沒(méi)商量”。
進(jìn)入命令提示符窗口,執(zhí)行命令:Regsvr32 /u shimgvw.dll即可。當(dāng)然再次啟用的方法和前面一樣,也是Regsvr32 shimgvw.dll。
實(shí)例三:修復(fù)損壞的IE瀏覽器
好多朋友都有過(guò)這樣的遭遇,IE鏈接點(diǎn)擊無(wú)效,無(wú)法正常打開(kāi)新窗口,按照以前的作法,基本上重裝一遍IE肯定能解決問(wèn)題,但這種方法既費(fèi)時(shí)間也費(fèi)精力,倒不如直接用Regsvr32命令來(lái)試試呢。
進(jìn)入命令提示符窗口,執(zhí)行命令:Regsvr32 actxprxy.dll,待正常報(bào)告窗口彈出后,再次執(zhí)行命令:regsvr32 shdocvw.dll,再等待正常報(bào)告彈出后,繼續(xù)執(zhí)行命令:Regsvr32 Oleaut32.dll,等最后這次正常報(bào)告彈出后,您就可以重新打開(kāi)IE試試了,怎么樣?保準(zhǔn)讓你喜出望外。
實(shí)例四:卸載XP的影像預(yù)覽功能也很簡(jiǎn)單
同上面所說(shuō)的圖片預(yù)覽功能一樣,XP的影像預(yù)覽功能(即
視頻文件預(yù)覽功能)也可以讓我們自由地注冊(cè)與卸載。
進(jìn)入命令提示符窗口,執(zhí)行命令:Regsvr32 /u shmedia.dll即可成功地卸載XP默認(rèn)的影像預(yù)覽功能,當(dāng)然去掉/U參數(shù),即Regsvr32 shmedia.dll命令又可以將影像預(yù)覽功能重新注冊(cè)上。
實(shí)例五: 恢復(fù)IE新窗口打開(kāi)超級(jí)鏈接功能:在IE中有兩種超級(jí)鏈接,一種是在當(dāng)前頁(yè)面跳轉(zhuǎn)的鏈接,另一種是彈出新窗口的鏈接,對(duì)第一種鏈接也可按住Shift鍵在新窗口中打開(kāi)。很多人都遇到過(guò)不能在新窗口打開(kāi)鏈接的麻煩事兒,這個(gè)問(wèn)題也是因控件注冊(cè)信息丟失引起的。解決辦法是:在運(yùn)行框中分別執(zhí)行三個(gè)命令:“Regsvr32 Actxprxy.dll ”、“Regsvr32 Shdocvw.dll”、 " Regsvr32 Oleaut32.dll ”。一這三個(gè)控件注冊(cè)成功后,重新啟動(dòng)電腦, IE 就恢復(fù)正常了。
【小提示】 以上幾個(gè)實(shí)例均是將這些系統(tǒng)功能反注冊(cè),以使系統(tǒng)無(wú)法使用到這些功能,并沒(méi)有刪除掉任何系統(tǒng)文件,因此我們也就可以輕松地重新注冊(cè)這些功能,整個(gè)過(guò)程都是可逆的,請(qǐng)大家放心試用
本人的系統(tǒng)先天不足,安裝完系統(tǒng),就有兩大錯(cuò)誤。
網(wǎng)絡(luò)電影,在線電視都不行。
WINplayer 9打開(kāi)時(shí)提示如圖:
查了很久,找到方法:開(kāi)始--運(yùn)行--輸入”regsvr32 jscript.dll“。問(wèn)題解決。
系統(tǒng)故障解決小方法:regsvr32命令小集(不斷補(bǔ)充)
系統(tǒng)及系統(tǒng)自帶的軟件(如:ie,wmplayer等)出錯(cuò),大部分由于動(dòng)態(tài)鏈接庫(kù) (DLL) 文件或 ActiveX 控件 (OCX) 文件損壞,會(huì)導(dǎo)致各種系統(tǒng)故障,甚至重裝IE,甚至系統(tǒng),問(wèn)題依舊.這時(shí)您可以使用 Regsvr32
工具修復(fù).
使用方法:開(kāi)始→運(yùn)行,輸入regsvr32 *.dll 或regsvr32 *.ocx
一、輕松修復(fù)IE瀏覽器
regsvr32 Shdocvw.dll
regsvr32 Oleaut32.dll
regsvr32 Actxprxy.dll
regsvr32 Mshtml.dll
regsvr32 Urlmon.dll
regsvr32 jscript.dll
同時(shí)運(yùn)行以上命令可以解決以下IE問(wèn)題:
IE不能打開(kāi)新的窗口,用鼠標(biāo)點(diǎn)擊超鏈接也沒(méi)有任何反應(yīng)的問(wèn)題;網(wǎng)頁(yè)顯示不完整,JAVA效果不出現(xiàn),網(wǎng)頁(yè)不自動(dòng)跳轉(zhuǎn),打開(kāi)某些網(wǎng)站時(shí)總提示‘無(wú)法顯示該頁(yè)’;狀態(tài)欄顯示‘網(wǎng)頁(yè)上有錯(cuò)誤’的提示。
二、Windows無(wú)法在線升級(jí)
----regsvr32 wupdinfo.dll
三.XP系統(tǒng)的搜索功能、幫助和支持.管理工具等,打開(kāi)無(wú)任何反應(yīng)------regsvr32 shdocvw.dll
四.控制面板中的添加/刪除程序時(shí),雙擊它的圖標(biāo)后無(wú)反應(yīng),或者打開(kāi)后自動(dòng)關(guān)閉了或打開(kāi)后一片空白.
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
五.文件夾中不使用縮略圖查看文件
2000: regsvr32 C:\Winnt\System32\thumbvw.dll
XP: regsvr32 shimgvw.dll
六.搜索’功能的搜索助理操作面板空白及系統(tǒng)還原功能無(wú)法使用等。如圖1
解決方法:regsvr32 vbscript.dll
regsvr32 jscript.dll
七.WINplayer 9打開(kāi)時(shí)提示‘出現(xiàn)內(nèi)部應(yīng)用程序錯(cuò)誤’,如圖2:
regsvr32 jscript.dll
八. 恢復(fù)Windows默認(rèn)的文件關(guān)聯(lián)
rundl32l setup.dll,InstallHinfSection DefaultInstall 132 c:\windows\inf\shell.in
regsvr32.exe /i shdocvw.dll
regsvr32 /i shell32.dll
regsvr32.exe /i shdoc401.dll 九:內(nèi)存不能讀寫(xiě),如圖2。
除去硬件原因:如內(nèi)存不兼容等。軟件原因大部分也是.dll文件損壞。
當(dāng)然如果是個(gè)別軟件運(yùn)行時(shí)出現(xiàn)這個(gè)問(wèn)題,重裝那個(gè)軟件看看能不能解決。
需要修復(fù)的.DLL文件如下:
regsvr32 actxprxy.dll
regsvr32 shdocvw.dll
regsvr32 oleaut32.dll
regsvr32 actxprxy.dll
regsvr32 mshtml.dll
regsvr32 msjava.dll
regsvr32 browseui.dll
regsvr32 urlmon.dll
注1:一個(gè)重要參數(shù) /U(卸載.DLL或.ocx文件,導(dǎo)致系統(tǒng)錯(cuò)誤)
如:regsvr32 /u jscript.dll 就會(huì)出現(xiàn)上圖七中的錯(cuò)誤.
注2:有的系統(tǒng)故障要用注冊(cè)很多個(gè).dll文件,可以用記事本建一個(gè)文件,把那些命令拷貝進(jìn)去.然后另存為"修復(fù).bat",運(yùn)行"修復(fù).bat"就可以修復(fù)了.
我的修復(fù).bat,注冊(cè)上面的所有.dll文件
regsvr32 Shdocvw.dll
regsvr32 Oleaut32.dll
regsvr32 Actxprxy.dll
regsvr32 Mshtml.dll
regsvr32 Urlmon.dll
regsvr32 jscript.dll
regsvr32 wupdinfo.dll
rundll32 setup.dll,InstallHinfSection DefaultInstall 132 c:\windows\inf\shell.inf
regsvr32.exe /i shdocvw.dll
regsvr32 /i shell32.dll
regsvr32.exe /i shdoc401.dll
regsvr32 shdocvw.dll
regsvr32 vbscript.dll
各類(lèi).DLL文件修復(fù)打包,可以
下載試試。
注:如果你直接運(yùn)行.BAT文件,會(huì)出現(xiàn)很多注冊(cè)成功或失敗的窗口,你要點(diǎn)的半死。
方法:運(yùn)行————CMD。右鍵點(diǎn)擊這個(gè).BAT文件,在右鍵菜單中選擇編輯。出現(xiàn)記事本窗口,把.BAT的內(nèi)容復(fù)制,粘貼到CMD窗口。這樣你
不需一次次點(diǎn)擊確定。等全部注冊(cè)完,關(guān)閉組就可以了
寫(xiě)在最后
至此,Regsvr32就給大家介紹完了,不知道對(duì)大家有沒(méi)有幫助。其實(shí),Regsvr32的用處豈止上面幾個(gè)實(shí)例,它還能修復(fù)損壞的Windows自動(dòng)更新,修復(fù)損壞的“我的文檔”,還可以讓W(xué)indows Media播放器支持RM這樣的文件格式。限于篇幅有限,在此就不一一介紹了,有興趣的朋友也可以參考相關(guān)的其他文章,當(dāng)然要是有了更好的方法,也要記著和大家一起切磋啊。