图标缓存出错导致的问题

最近在使用Windows 7的过程中,我发现一个非常奇怪的问题。某些应用程序的快捷方式(仅快捷方式,主文件本身显示正确)图标变成了Windows通用图标,但是看这些快捷方式的属性,其中指定的图标内容是完全正确的,只不过无法显示出来:

出错的图标

这种问题出现在开始菜单,以及锁定到任务栏上的程序中。而且以上图的内容为例,关联的文件类型的图标完全正确,但程序本身的相关图标都无法显示。

怀疑可能是图标缓存出错的缘故。从Windows Vista开始,Windows的图标缓存是独立于文件缩略图缓存单独存储成文件的,该文件是%userprofile%\appdata\local\iconcache.db。因此我们只要将该文件删除即可。

但因为在Windows外壳(explorer.exe)运行的过程中,该文件会被锁定,无法删除,因此下列操作需要在命令行下进行:

  1. 同时按下Ctrl-Alt-Del打开资源管理器,切换到“进程”选项卡。
  2. 在找到的每个explorer.exe进程上点击鼠标右键,选择“结束进程”,最终Windows任务栏和桌面图标将全部消失。
  3. 在任务管理器的“文件”菜单下单击“新建任务”,输入“cmd”并按下回车,打开命令行窗口。
  4. 输入“CD /d %userprofile%\AppData\Local”并按下回车。
  5. 输入“DEL IconCache.db /a”并按下回车。
  6. 关闭命令行窗口。
  7. 再次从“文件”菜单下单击“新建任务”,输入“explorer.exe”并按下回车,Windows任务栏将重新出现。

至此,开始菜单中出错的图标将恢复正常显示。但锁定到任务栏上的图标将变成一个白色的方块。此时,只需要在这样的图标上单击鼠标右键,选择“将此程序从任务栏解锁”,然后重新从开始菜单或其他位置找到该快捷方式对应的主文件,并将其拖动到任务栏上即可:

正常的图标

分享:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

发表评论前,先做个简单的数学题吧: * Time limit is exhausted. Please reload CAPTCHA.