相信大家都遇見(jiàn)過(guò):在刪除一些軟件的時(shí)候彈出某某文件正在運(yùn)行或磁盤寫保護(hù)不能刪除這樣的報(bào)錯(cuò)提示吧(如圖1)。而常常刪除不掉的都一些后綴為.dll的文件。到底這個(gè)dll文件是什么文件,如何才能知道是哪些程序在調(diào)用這個(gè)dll文件呢?
dll文件英文名稱為Dynamic Linking Library,以下簡(jiǎn)稱dll,中文名字"動(dòng)態(tài)鏈接程序庫(kù)"文件。在Windows中,許多應(yīng)用程序并不是一個(gè)完整的可執(zhí)行文件,它們被分割成一些相對(duì)獨(dú)立的動(dòng)態(tài)鏈接庫(kù),即dll文件,放置于系統(tǒng)中。當(dāng)我們執(zhí)行某一個(gè)程序時(shí),相應(yīng)的dll文件就會(huì)被調(diào)用。一個(gè)應(yīng)用程序可有多個(gè)dll文件,一個(gè)dll文件也可能被幾個(gè)應(yīng)用程序所共用。比如,假設(shè)系統(tǒng)中有一dll具備了與遠(yuǎn)端系統(tǒng)進(jìn)行網(wǎng)絡(luò)聯(lián)接的功能,我們假設(shè)其名稱為Network.dll,如果有另外一個(gè)應(yīng)用程序想使用該功能,則這個(gè)程序只需在執(zhí)行時(shí)與Network.dll進(jìn)行動(dòng)態(tài)鏈接(Dynamic Linking),就可以運(yùn)用Network.dll的網(wǎng)絡(luò)聯(lián)接功能來(lái)實(shí)現(xiàn)遠(yuǎn)端聯(lián)接系統(tǒng)。簡(jiǎn)單地說(shuō),dll的特性是:
1、dll本身無(wú)法自行執(zhí)行,必須靠其他程序調(diào)用。
2、dll文件都具有一定的功能。
3、在系統(tǒng)剛建立時(shí) (如剛裝好Windows時(shí)),系統(tǒng)中即存在有一定數(shù)量的dll,而某些應(yīng)用程序亦會(huì)將自已所需的dll添至系統(tǒng)中,導(dǎo)致dll的數(shù)量隨應(yīng)用程序的增加而增加。
既然知道了dll文件的概念和特性,那么怎么才能解決刪除難這個(gè)問(wèn)題呢?雖然解決這個(gè)問(wèn)題的方法有很多種,如用軟件unlocker來(lái)刪除。這里介紹的是手工刪除方法dll文件的方法。
因?yàn)閐ll文件的特性注定了它可能被多個(gè)軟件調(diào)用,這也是dll文件為什么刪除不掉的原因——正在使用的文件是當(dāng)然不可能給你刪除的。那么到底是哪個(gè)程序在調(diào)用這個(gè)dll文件呢?如何才能刪除這個(gè)dll文件呢?下面就手動(dòng)刪除dll文件的方法。
Step 1.在運(yùn)行里輸入cmd進(jìn)入命令提示符。
step 2.然后輸入命令tasklist /m>c:\listdll.txt回車后,在C盤下會(huì)出現(xiàn)一個(gè)listdll.txt文本文件,這個(gè)文件里如圖2所示列出了目前運(yùn)行的各個(gè)程序正在調(diào)用的dll文件。在用CTRL+F彈出查找框,輸入自己要?jiǎng)h除的的dll文件,查找出是哪個(gè)程序在調(diào)用這個(gè)dll文件。
1、dll本身無(wú)法自行執(zhí)行,必須靠其他程序調(diào)用。
2、dll文件都具有一定的功能。
3、在系統(tǒng)剛建立時(shí) (如剛裝好Windows時(shí)),系統(tǒng)中即存在有一定數(shù)量的dll,而某些應(yīng)用程序亦會(huì)將自已所需的dll添至系統(tǒng)中,導(dǎo)致dll的數(shù)量隨應(yīng)用程序的增加而增加。
既然知道了dll文件的概念和特性,那么怎么才能解決刪除難這個(gè)問(wèn)題呢?雖然解決這個(gè)問(wèn)題的方法有很多種,如用軟件unlocker來(lái)刪除。這里介紹的是手工刪除方法dll文件的方法。
因?yàn)閐ll文件的特性注定了它可能被多個(gè)軟件調(diào)用,這也是dll文件為什么刪除不掉的原因——正在使用的文件是當(dāng)然不可能給你刪除的。那么到底是哪個(gè)程序在調(diào)用這個(gè)dll文件呢?如何才能刪除這個(gè)dll文件呢?下面就手動(dòng)刪除dll文件的方法。
Step 1.在運(yùn)行里輸入cmd進(jìn)入命令提示符。
step 2.然后輸入命令tasklist /m>c:\listdll.txt回車后,在C盤下會(huì)出現(xiàn)一個(gè)listdll.txt文本文件,這個(gè)文件里如圖2所示列出了目前運(yùn)行的各個(gè)程序正在調(diào)用的dll文件。在用CTRL+F彈出查找框,輸入自己要?jiǎng)h除的的dll文件,查找出是哪個(gè)程序在調(diào)用這個(gè)dll文件。
step 3.CTRL+ALT+DEL打開Windows資源管理器,結(jié)束占用需要?jiǎng)h除dll文件的程序或著進(jìn)程,這時(shí)再去刪除這個(gè)dll文件就很輕松了。
step 4.如果查出來(lái)的占用dll文件的進(jìn)程是svhost.exe文件/進(jìn)程,這個(gè)進(jìn)程一般系統(tǒng)有7、8個(gè)至多,到底是哪個(gè)svhost.exe進(jìn)程占用了這個(gè)dll文件呢?這是可以在命令提示符下輸入tasklist /svc,當(dāng)然,你也可以把它輸出為文本文件tasklist /svc>C:\listsvc.txt。這時(shí)listsvc.txt文件里的svhost.exe會(huì)跟出如圖3所示的各個(gè)進(jìn)程的PID號(hào)。這時(shí)就可以具體的根據(jù)PID號(hào)來(lái)結(jié)束進(jìn)程,達(dá)到刪除dll文件的目的。
step 4.如果查出來(lái)的占用dll文件的進(jìn)程是svhost.exe文件/進(jìn)程,這個(gè)進(jìn)程一般系統(tǒng)有7、8個(gè)至多,到底是哪個(gè)svhost.exe進(jìn)程占用了這個(gè)dll文件呢?這是可以在命令提示符下輸入tasklist /svc,當(dāng)然,你也可以把它輸出為文本文件tasklist /svc>C:\listsvc.txt。這時(shí)listsvc.txt文件里的svhost.exe會(huì)跟出如圖3所示的各個(gè)進(jìn)程的PID號(hào)。這時(shí)就可以具體的根據(jù)PID號(hào)來(lái)結(jié)束進(jìn)程,達(dá)到刪除dll文件的目的。