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