困扰多时的,每次画图软件、Photo软件修改后无法保存(一打开保存对话框,软件就崩溃)的问题,终于在AI 10分钟的帮助下解决。。。之前尝试无数种不同解决方法都无法解决的顽固症状、面对10M日志分析的头昏眼花,给AI分析,秒解决,人真的要退伍了,以下是AI的推荐步骤:
- Process Monitor (ProcMon) —— 微软官方 Sysinternals 工具(最强定位工具)
- 打开
Procmon.exe,按Ctrl + L添加过滤条件:Process Nameismspaint.exethenInclude
- 点击开始捕获,然后回到画图点击“另存为”。
- 崩溃发生后立即停止捕获(按
Ctrl + E),观察列表最后几十行。 - 查看是否有针对
HKCU\Software\Classes\CLSID\...或NameSpace的状态为ACCESS DENIED(被改了权限导致崩溃)或NAME NOT FOUND后紧接着进程退出的记录,能秒级定位具体是哪个键受损。
2. 把崩溃时间点附近的时间保存为csv文件格式;
3. 把10M日志文件喂给AI,然后问“这个是mspaint.exe崩溃前procmon记录的信息,跟崩溃有关系吗?”
4. AI给出solution:
这份 ProcMon 日志与崩溃直接相关,它精准指出了导致画图闪退的元凶。
问题并不是系统文件或画图本身,也不是之前怀疑的 OneDrive,而是海康私有网盘(HikBox Client / 海康智存)的图标角标覆盖扩展(Icon Overlay Shell Extension)。
日志中的关键证据分析
- 强行在画图内部加载整个 .NET 运行库:
- Modern 版本的 Windows 11 画图(
mspaint.exe)是一个原生的 WinUI 3 / AppContainer 打包应用。 - 但日志记录到,画图在准备渲染文件保存对话框时,突然开始读取并加载系统级的 .NET CLR 运行时(
mscoree.dll、clr.dll、mscorlib.ni.dll、System.Data.SQLite.dll等)。
- Modern 版本的 Windows 11 画图(
- 定位到罪魁祸首扩展:
- 日志中的注册表项明确显示,注册表路径
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers下被注册了以空格开头的条目:AOverHanderSyn1对应 CLSID{88D8036A-81DC-3287-9E44-5F73FCBAEF73}AOverHanderSyn2对应 CLSID{9FFE1F6B-8407-3206-845F-7D75A424BE02}AOverHanderSyn3对应 CLSID{48B9E55B-D7AC-3647-AE7A-26B87CC8BCA5}
- 这三个组件全部指向
D:\Program Files\HikBox Client\resources\Windows\HikBoxSignTool.dll(使用第三方开源库SharpShell开发的 .NET 外壳角标扩展)。
- 日志中的注册表项明确显示,注册表路径
- 崩溃触发机制:
- 软件开发者在前缀加了大量空格,目的是强行抢占 Windows 最多只支持 15 个图标角标的优先级。
- 当画图弹出“另存为”对话框时,文件选择窗口枚举图标角标,触发了
HikBoxSignTool.dll。但在受限沙箱/特定线程模型下初始化 .NET CLR 及 SQLite 资源时,底层触发了栈保护机制(即报错的0xc0000409快速故障中断),紧接着进程直接拉起了WerFault.exe(Windows 错误报告)。
彻底解决办法
无需重装系统,直接清除这三个由海康网盘强行插入的角标注册表项即可:
方案一:使用命令行删除(推荐,最快)
以管理员身份打开 PowerShell 或终端,依次执行以下命令:
PowerShell
# 删除海康网盘注册的3个图标角标扩展
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ AOverHanderSyn1" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ AOverHanderSyn2" /f
reg delete "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\ AOverHanderSyn3" /f
# 重启资源管理器使设置生效
Stop-Process -Name explorer -Force