修复mathcad15(M040)文档图标异常

安装mathcad15M040,使用SolidSQUAD的xx文件替换原始mathcad.exe,重启电脑后,mc文档xmcd(z),mc模板xmct,还有mc电子书hbk,这类文件的图标统统丢失了,变成了无图标的样式,看上去就是没有与任何程序关联的样子。

卸载mc后重新安装一遍,发现图标正常了,但当重新启动电脑后,图标又丢失了,所以这并不是安装不成功导致的。

正常情况下,文件图标显示成什么样子与关联的程序有关,我发现我可以通过双击xmcd文档直接打开mathcad并成功载入文档,说明xmcd文档正常地与mathcad进行了关联,因此这个问题并不是由于文件关联失败导致的。

文件显示什么样的图标,通常是与它所关联的exe程序相关的,图标可以存放在exe文件或dll文件中的。我注意到每次安装好mathcad直到重启前,文档图标都是能够正常显示的,只有在重启后才会出现图标消失的情况,因此怀疑是存放图标的文件发生了异常。

而异常现象发生前,我只做了两件事:

  • 用SolidSQUAD的xx文件替换了原始mathcad.exe
  • 重启电脑

也许是SolidSQUAD在xx时没有把exe中的图标保留下来,导致系统重启后不能在xx文件中找到图标,因此所有与mathcad关联的文件都没了原来的图标。

通过一个简单的方法验证——给快捷方式换图标。在桌面上建立一个mathcad快捷方式,然后从其属性中更改图标,定位到SolidSQUAD的xx文件,提示该exe文件中不包含图标。

可以确认图标异常的原因正是SolidSQUAD的xx文件中没有保留mathcad的图标。

解决这个问题,可以有两个选择:

  • 通过PE Explorer这个软件,把原始mathcad.exe中的图标文件提取出来,再保存到xx文件中去
  • 通过修改注册表中关于文件关联的部分,将xmcd(z),xmct,hbk文件的默认图标路径设置到存在的图标文件。

我采用了第二种方法,因为mathcad安装时默认在C盘中保留了带图标的exe文件,路径如下

C:\WindowsInstaller\{A8C99049-C1FC-4B5D-803C-194745073E53}

可能不同电脑上最后一个文件夹的名称不同,待确认。

文件名是icon2.exe,icon3.exe,icon3.exe,一共有三个文件。经MD5校验,这3个文件是完全一样的,每一个文件中都保存了mathcad相关文档的图标。

注册表中存放文件图标路径的地方,比如xmcd文件的图标路径信息,在‘HKEY_CLASSES_ROOT\Mathcad xmcd\Defaulticon‘,默认值是:

“mathcad安装路径\mathcad.exe”,1

这表示操作系统对于xmcd文件会使用mathcad.exe中的第2个图标来显示(第一个图标的序号是0)。

把它设置为icon2.exe中的第2个图标,改成下面这样

"%SystemRoot%\Installer\{A8C99049-C1FC-4B5D-803C-194745073E53}\icon2.exe",1

重启电脑,图标恢复正常,如法炮制,对其他几个类型的文档进行设置,问题解决。

下面是修改后导出的注册表信息
(测试环境:32位 win7 sp1)

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Mathcad xmcd\Defaulticon]
@="\"%SystemRoot%\\Installer\\{A8C99049-C1FC-4B5D-803C-194745073E53}\\icon2.exe\",1"
[HKEY_CLASSES_ROOT\Mathcad xmcdz\Defaulticon]
@="\"%SystemRoot%\\Installer\\{A8C99049-C1FC-4B5D-803C-194745073E53}\\icon2.exe\",1"
[HKEY_CLASSES_ROOT\Mathcad xmct\Defaulticon]
@="\"%SystemRoot%\\Installer\\{A8C99049-C1FC-4B5D-803C-194745073E53}\\icon2.exe\",1"
[HKEY_CLASSES_ROOT\Mathcad mct\Defaulticon]
@="\"%SystemRoot%\\Installer\\{A8C99049-C1FC-4B5D-803C-194745073E53}\\icon2.exe\",1"
[HKEY_CLASSES_ROOT\Handbook.Document\Defaulticon]
@="\"%SystemRoot%\\Installer\\{A8C99049-C1FC-4B5D-803C-194745073E53}\\icon2.exe\",2"

就是这样。

你可能感兴趣的:(修复mathcad15(M040)文档图标异常)