近日,不少使用Windows 7的网友反映,他们在卸载超级兔子后发现原来桌面图标被加上一个白色标记(见图1)。出现故障之前他们都使用过超级兔子取消快捷方式的小箭头,卸载了超级兔子后怎么会出现这种故障?这个小箭头后面又有什么秘密?下面我们就请傻博士为大家剖析这个难题。
美丽图标的背后
对于Windows 7用户,桌面图标实际上由系统读取C:\Users\CFAN\Local Settings\IconCache.db(CFAN为当前用户名)这个图标缓冲文件显示的。桌面图标主要有两类:一类是系统图标如计算机、回收站、网上邻居等,它是由注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace]下的键值指定显示的,另一类则是由用户或者应用程序创建的快捷方式,系统通过在图标上叠加小箭头作为标记。
小箭头是怎样变白的?
在上述截图可以看到图标显示故障是出在用户自行创建快捷方式上(系统图标显示正常),原因显然是由于小箭头图标没有正常叠加导致。那么故障出现的原因是什么?只要再次使用超级兔子去除桌面图标小箭头,从超级兔子设置程序上警告可以看到(只要在“魔法设置→桌面图标”选项,勾选“禁止快捷方式的标记”即可显示警告窗口),兔子“去除”小箭头实际上是使用空白图标替换实现(见图2)。
通过对优化前后注册表键值变化监控可以发现,兔子去除小箭头是通过在注册表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons]下新建一个名为29的字符串,并赋值为C:\Program Files\Super Rabbit\MagicSet\BlankV.ico实现。打开C:\Program Files\Super Rabbit\MagicSet,可以发现其中的BlankV.ico正是空白图标,也就是说超级兔子优化是通过这个图标替代原来小箭头实现(见图3)。当卸载超级兔子后,系统会将C:\Program Files\Super Rabbit\MagicSet\BlankV.ico一并删除。由于重启后找不到指定图标文件,系统便使用默认图标(%SystemRoot%\system32\SHELL32.dll中第一个图标)附加到快捷方式上,于是便出现了上述图标变白的故障。
小提示:
对于XP用户,卸载超级兔子后并不会出现上述故障。因为XP系统在找不到附加图标文件后,系统默认就不使用附加图标了。
去除小箭头,安全无痛
知道了故障原因,解决方法就很简单。展开注册表,删除上文中注册表键值右侧窗格的29字符串值,重启后就会自动添加上原来的小箭头。那么应该如何安全地去除小箭头?实际上小箭头只是系统将图标作为快捷方式外观标记,它是通过注册表[HKEY_CLASSES_ROOT\lnkfile]右侧窗格的IsShortcut字符串值指定的(DOS程序快捷方式小箭头则是HKEY_CLASSES_ROOT\Piffile对应的)。因此只要删除上述两个键值中的IsShortcut这个字符串,重启后系统就不会把图标标示为快捷方式,自然去除快捷方式上的小箭头了,该方法同样适用于XP用户。
小提示:其它常见图标故障解决方法
1.重建图标缓冲文件。由于桌面图标是由C:\Users\CFAN\Local Settings\IconCache.db显示,因此图标显示出现故障时,可以尝试删除这个文件并结束桌面进程,再次重启桌面进程后一般即可解决故障。
2.删除桌面顽固图标。中毒后经常会在桌面出项无法删除图标,实际上这些图标是“伪”系统图标。首先根据桌面图标名称,然后展开[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace],把其中和顽固图标名称对应的项删除即可。