引言:
在我们卸载一个软件时,有时候会有一些.dll后缀的文件无法删除干净,原因是被其他进程调用,处于运行状态,无法删除。这时候必须找到调用该dll文件的进程(exe),可能不只一个,关停这些进程,然后再去删除对应的dll文件就能删除成功了,但是如果dll文件被windows系统的档案总管进程(explorer.exe)调用了呢?关停该进程之后你的电脑就蓝屏了,桌面上什么也看不到了,除了你已经打开的几个应用程序界面,这种情况怎么启动explorer.exe呢?下面我详细地说一下,把这个坑的解决过程记录下来。
详情:
在win8的任务管理器中的”详细信息“中能看到所有运行中的进程,在这里面你能鼠标右键一个进程,然后选择“停止任务”关闭该进程:
但我们还不知道是哪个进程调用了我们要删除的dll文件,继续往下看。
1、一句命令:
可以在cmd中用一句命令产生一个txt文件,在这个txt文件中会记录有所有运行中的进程及其调用的所有dll文件的对应关系,注意cmd(命令提示符)一定要以管理员身份打开,否则会提示“拒绝访问”:
在cmd中输入一行命令:tasklist /m>c:\1.txt,然后回车。1.txt文件本身不存在,这没有关系,文件名本来就瞎起的。
输完命令后回车C盘下就有1.txt文件了:
2、在产生的txt中查看自己的dll被哪个进程调用了:
用文本编辑器打开1.txt:
利用文本编辑器的“编辑”->“查找”功能,输入你要删除的dll文件的名称,比如aaa.dll,辅助你找出所有调用了aaa.dll的exe文件:
3、关闭找到的exe进程:
这里有个坑,你的dll可能被windows系统的档案总管(explorer.exe)调用了,关闭explorer.exe会导致电脑蓝屏,桌面上除了已经打开的应用程序的界面外,其他东西都没有了,这时候需要你在停止explorer.exe之前打开cmd,之后只能通过命令删除你要删除的dll文件了,因为explorer.exe停止之后你的文件夹打开界面也会消失。如果对命令行有恐惧症,想放弃,只能另找办法解决,这里我只记录cmd中删的方式。其实不用怕的,因为重新启动explorer.exe的步骤也很简单。
“ctrl+alt+delete”选中任务管理器打开,在文章开头所说的"详细信息"中找到你要停止的进程(exe),右键停止该任务就行了,当所有要停止的任务都停止以后,你就可以去删除你要删除的dll文件了。
这里我们假设explorer.exe已经停止了,所以只能通过cmd去删除一个dll文件,比如说我要删除G盘中software文件夹中的一个dll,在cmd中操做的步骤如下图:
然后就可以重新启动explorer.exe进程了:
打开任务管理器(此时只能通过快捷键打开:ctrl+alt+delete),点击左上角“文件”,再点击“运行新任务”,在弹出窗口输入explorer.exe,回车,然后就恢复如初了。