« 上一篇下一篇 »

CHM文档打不开的解决办法

问:CHM文档都打不开了,错误提示:Cannot open the file: mk :@MSITStore:文件路径\文件名

解决办法:

方法一:
首先,在微软网站上下载hhupd.exe , 安装 hh.exe 后并运行。然后运行“regsvr32 C:\windows\system\hhopen.ocx”等CHM相关文件。如果还是不能正常打开CHM文档,就看看你的注册表中的 “HKEY_CLASSES_ROOT\chm.file\shell\open\command”分支,如果分支下面除了默认项外,还多了一个“command”字符串,就把它删除,这样CHM文件就能正常打开了。

方法二:
把他转换成记事本文件.txt
CHM是一种常见的帮助文件格式,有时候我们需要提取里面的内容来进行编辑,但是有些CHM文件里的内容是不能复制的。其实我们可以通过转换格式把CHM文件转换成其他格式,这样就可以轻松提取里面的内容了。
CHM Converter(点击下载)是一个专门转换CHM格式的文件,它可以把CHM文件转换成PDF、TXT、DOC等常用的格式。
下载后运行软件,软件默认是英文界面,我们可以点击菜单“Tools-Language”,在弹出的对话框中选择“Chinese_Simplified”就可以换成中文了,软件还支持其他很多语言。
选好语言后点击左上角的“打开”按钮来选择要转换的CHM文件,如果CHM文件是英文版的,那么在旁边的下拉菜单中就选择“DEFAILT_CHARSET”,如果是中文的,那需要在下拉菜单中选择“GB2312_CHARSET”,否则会产生乱码,然后在右面的“导出”中来选择要转换的文件类型,软件支持很多格式的文件,如这里选择“Word97-2003”,最后点击“另存数据库为”按钮,选择保存的文件夹后就开始进行转换了。

方法三:
本问题和微软的安全更新 896358有关,把chm文件改成英文文件名。

方法四:
也许是 HH.EXE 所必需的某个组件出了问题。但是不知道 HH.EXE 会用到些什么组件,所以上网查了一下,有人建议重新注册 hhctrl.ocx。我在系统目录下找到了 hhctrl.ocx,重新注册一下 hhctrl.ocx 试试:regsvr32 hhctrl.ocx。依然不能正常阅读 CHM。

既然如此,很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议,这些协议应该是由某个 DLL 文件提供服务的。问题是,是什么 DLL 呢?于是再用 Google 搜索 ms-its 协议。终于找到了,原来是一个 itss.dll 在做服务。不过网上查到的解决方案是修改注册表。

要修改 ItssRestrictions 注册表项以启用特定的安全区域,请按照下列步骤操作:
1. 单击“开始”,单击“运行”,键入 regedit,然后单击“确定”。
2. 找到并单击下面的子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
注意:如果该注册表子项不存在,则使用方法 1 中的步骤 2a 和 2b 创建该子项。
3. 右键单击“ItssRestrictions”子项,指向“新建”,然后单击“DWORD 值”。
4. 键入 MaxAllowedZone,然后按 Enter 键。
5. 右键单击“MaxAllowedZone”值,然后单击“修改”。
6. 在“数值数据”框中,键入 0 至 4 之间的一个数字,然后单击“确定”。
7. 退出注册表编辑器。
注意:默认情况下,“MaxAllowedZone”值设置为 0。下表摘要列出了“MaxAllowedZone”值对各个项的解释。 MaxAllowedZone 本地计算机区域 本地 Intranet 区域 受信任的站点区域 Internet 区域 受限站点区域
0 允许 阻止 阻止 阻止 阻止
1 允许 允许 阻止 阻止 阻止
2 允许 允许 允许 阻止 阻止
3 允许 允许 允许 允许 阻止
4 允许 允许 允许 允许 允许

方法六:
重新注册DLL:regsvr32 itss.dll