2024-11-19 广告
这个问题比较复杂。Windows Explorer 设计之初是一个插件式的系统,允许第三方软件通过插件扩展很多行为,比如上下文菜单或图标。此类插件称为 shell extension。很多程序都会以插件的形式提供自己的一部分功能,比如 Visual Studio 或 TortoiseSVN。据我之前工作的经验所知,Windows Explorer 自身代码质量还不错,实际上很多上报的 bug 都是第三方扩展引起的。所以我倾向于认为这个问题的情况也不例外。
提问者说自己的 Windows Explorer 总是重启,最可能出现的情况就是某个第三方插件在一直崩溃。因为 Windows Explorer 是 Windows 的主界面管理程序,当它崩溃时,系统就会自动将其重启,于是出现了反复崩溃的情况。
如果要定位这个问题,最直接的方法可能还是搞清楚是什么插件导致的崩溃。我建议的方法有两个:
利用第三方工具。这里有一个好工具是 ShellExView - Shell Extension Manager For Windows 。重启进入安全模式并安装这个软件,禁用所有的第三方插件,然后进入正常启动模式后一个个启用,看看是哪一个插件造成的问题。
使用 WinDBG 启动 Explorer.exe,并让它崩溃,注意它最后的崩溃点在哪一个 DLL 里。然后 regsvr32 /u <DL
L 路径> 即可。
专业开发人员可能会选择用后一种方法,但非计算机背景的朋友则可能未必有能力做到。如果提问者没有能力独立操作调试器,那么我推荐前一种方法。