本次处理的打印机型号是HP Officejet 200 移动便携式打印机,不过其他型号如果出现类似现象,解决方法应该是一致的。
在弹出Windows资源管理器已停止工作的报错提示框后,点击左下角的详细信息,看到的内容显示是KernelBase.dll崩溃了,如下图:
不过知乎里查了一个帖子的说法,这个KernelBase.dll是一个NT内核系统的底层API接口的DLL文件,主要是用来对接系统各种运行库的如C++、.net framework、DirectX等),各类软件使用各种库时调用这个dll文件进行程序初始化工作,很多报这个dll文件的错误其实不一定是它引起的,也就是容易被误判成它引起的。所以一般并不需要去修复这个dll文件(除非所有程序都运行报这个错,是个普遍现象,那考虑它崩溃是对的)。
通过注册表加DisableTaskMgr值、服务里停止Windows Error Reporting Service、卸载近期安装的更新(本次是Win 7系统,其实并没有开启自动更新,微软早已停止对Win7的支持,也没有什么更新),发现都没有解决。修复打印机驱动或是直接卸载重新安装也没用。
解决办法,是打开C:\WindowsSystem32\spool\drivers\x64\3文件夹,并删除其中的所有文件,然后重新安装,随后打印恢复一切正常了。
分析了一下这么操作的原理,应该是打印机驱动相关文件默认安装在此目录下,在之前驱动故障导致Window资源管理器奔溃后,直接重新安装并无法将原来的错误信息清除,还是保留在此,所以直接重新安装无法解决。而删除此文件夹下的所有内容后,导致错误的内容也一并被清除,重新安装驱动后便能够恢复正常了。
这次处理的系统是64位的,使用上面的目录。如果是32位的系统,查了一下应该是C:Windows\System32\Spool\Drivers\W32X86。后续一些新系统,如果有类似问题的,万一默认文件路径有变化的,找到后,也可以尝试参考这样的方法来解决。