修复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"

就是这样。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,647评论 9 468
  • 个人学习批处理的初衷来源于实际工作;在某个迭代版本有个BS(安卓手游模拟器)大需求,从而在测试过程中就重复涉及到...
    Luckykailiu阅读 4,799评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 最近初略的看完了《批处理标准教程-MHL版本》,把教程中的一些对我有帮助的资料转为MD格式,就当是做个笔记,加深记...
    禾白小三飘阅读 1,475评论 1 7
  • 这篇文章几乎几乎原封不动的搬过来了这位博主的内容,作为自己以后查询方便用~ reference:http://bl...
    DeamoV阅读 20,506评论 3 33