CHM文件无法正常打开的解决方案

来源:互联网 发布:js 取指定对象的属性 编辑:程序博客网 时间:2024/04/26 06:10

网上的解决办法:
(一)1 如果你的操作系统是英文版的,那么你只需在control panel 中将语言设置改为中文即可

    start-control panel-data,time,language and regional options-regional and language options.在regional options 标签中将语言改为Chinese (PRC),这样英文版的系统就可以看中文电子书了。

(二) 如果中文版系统 ,可以参考下面的方法:


1,右键关联chm文件的“打开方式”到/Windows/HH.exe
2,在命令行运行regsvr32 itss.dll
3,在命令行运行regsvr32 hhctrl.ocx

如果还没有解决的话,那可能试因为你的XP没有升级到 sp2,hhctrl.ocx版本太低,你可以到别人的系统上copy一个高版本的。
From:http://myturn.blog.hexun.com/4728013_d.html(二)1 如果你的操作系统是英文版的,那么你只需在control panel 中将语言设置改为中文即可
    start-control panel-data,time,language and regional options-regional and language options.在regional options 标签中将语言改为Chinese (PRC),这样英文版的系统就可以看中文电子书了。
2 如果中文版系统,可以参考下面的方法:
 
1,在命令行运行regsvr32 itss.dll
2,在命令行运行regsvr32 hhctrl.ocx
3,右键关联chm文件的“打开方式”到/Windows/HH.exe
如果还没有解决的话,那可能试因为你的XP没有升级到 sp2,hhctrl.ocx版本太低,你可以到别人的系统上copy一个高版本的。
如果电子书能打开,但是右边窗口中显示的是“该页无法显示”,那么把下面的内容存为1.reg,然后双击导入注册表即可
 
REGEDIT4
[HKEY_LOCAL_MACHINESOFTWARE MicrosoftHTMLHelp]
[HKEY_LOCAL_MACHINESOFTWARE MicrosoftHTMLHelp1.xHHRestrictions]
"MaxAllowedZone"=dword:00000003
[HKEY_LOCAL_MACHINESOFTWARE MicrosoftHTMLHelp1.xItssRestrictions]
"MaxAllowedZone"=dword:00000003
 
另外:在WINDOWS安装了安全更新 896358 后,下载的CHM文件无法打开最简单的办法是,点击CHM文件的属性,发现“常规”栏下多出几行字:“安全:此文件来自其他计算机,可能被阻止以帮助保护计算机”点击旁边的解除锁定即可解决。
From:http://blog.sina.com.cn/u/4abc436f010005g2

(三)chm文件无法打开问题的解决

系统版本 xp sp2专业版本。 
问题:chm文件打开无法显示 

“CHM格式的文件无法显示,而且windows 2000上正常,windows xp上打开后显示无法找到页面。 

在某些CHM文件中可能会使用到InfoTech协议,而它包含3种协议:ms-its 、its、mk:@msitstore 。利用这些协议,恶意攻击者或者恶意代码将可能导致帮助产生溢出漏洞,从而控制计算机。而MS最新公布的安全更新MS05-026 KB896358修正了这一情况,并屏蔽了远程链接,这就导致了使用了远程链接的一些CHM页面开启失败。趋势安全站点对此漏洞作出了如下描述: 

这个安全问题来自于早先公布的 微软HTML Help漏洞。HTML Help是Windows平台上的标准帮助系统。作者可以使用它为程序或者多媒体主题或者Web站点创建在线的帮助文件。 
由于HTML Help并不会完全校验输入数据的特性,导致这一点可能被利用。一个特殊的CHM文件可以导致帮助系统溢出,这个溢出如果被利用,就可以用于执行恶意代码。 
这样的恶意CHM文件可以使用“ms-its”协议,通过IE开启。开启后的CHM文件不再需要用户的参与,就能够自动执行恶意CHM文件和附随的代码。“ms-its”协议是InfoTech 协议的一部分,该协议能够 为ITSS.DLL或者 微软InfoTech Storage System Library所执行。当然,这些恶意的程序无法靠自身传播,仍然需要用户在特定的位置,通过IE和“ms-its”协议访问恶意的CHM文件。 
这种情况一旦发生,如果受影响的用户当前登录身份是管理员,远程代码执行的漏洞可以允许恶意用户或者恶意软件,获得受影响系统的完全控制权限。 
从而这个恶意用户或者恶意程序得以在此系统上执行代码,并使用完全控制权限安装或者运行程序,并能够察看或者编辑数据。因此,这个漏洞同样也能够被用于复制。 

受影响的系统: 

 Microsoft Windows 2000 Service Pack 3  
 Microsoft Windows 2000 Service Pack 4  
 Microsoft Windows 98  
 Microsoft Windows 98 Second Edition  
 Microsoft Windows Millennium Edition  
 Microsoft Windows Server 2003  
 Microsoft Windows XP Service Pack 1  
 Microsoft Windows XP Service Pack 2  
 Microsoft Windows Server 2003 for Itanium-based Systems  
 Microsoft Windows XP -Bit Edition Service Pack 1 (Itanium)  
 Microsoft Windows XP -Bit Edition Version 2003 (Itanium)  
 Microsoft Windows XP Professional x Edition  
 Microsoft Windows Server 2003 Service Pack 1  
 Microsoft Windows Server 2003 with SP1 for Itanium-based Systems  
 Microsoft Windows Server 2003 x Edition 

解决方法如下:

[HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/HTMLHelp/1.x/ItssRestrictions] 
"UrlAllowList"="///helpfiles/;file://///helpfiles" 

需要提到一点的是,默认情况下,子健1.x 下可能并不存在 ItssRestrictions子健,您需要手动创建它,然后在其下创建字符串键值 UrlAllowList 。
 
(四)由于编程的需要,所以偶装了windows server 2003(XP、2000系统同样适用)系统,安装好后,*.CHM的文件可以正常打开,但是装了SP1以及在网上升级后有的补丁后,一打开*.chm的文件,就会出现错误,在网上查了N多的资料,都不行。

这个问题的发生,是由于hhctrl.ocx的版本号出现错误或未正确注册。
原因在于安装的其他软件用hhctrl.ocx的旧版本替换了原来的版本。
IE6SP1中,这个文件的版本号应为5.2.3735.0。
可以看看你的系统这个文件的版本号。
位于winnt/system32这个文件夹。大小504K(英文版本)

其实是系统在装了SP1以后,为了屏蔽漏洞更新了hhctrl.ocx和itss.dll(HH.EXE 用的是 ms-its 等协议的相关文件)但是由于杀毒软件或者一些防火墙的原因,这两的控件无法再在系统中正常的注册,所以就造成了CHM文件无法打开,并提示协议连接错误,或找不到文件等错误信息。

如果是版本被病毒或流氓软件修改,你可以从其他相同的系统(IE版本也相同)中COPY一份,粘贴到你的系统相应文件夹中。然后注册一下。

如果系统的文件都正常,只需要在系统中注册一下这两的控件即可。
方法如下:
------------------------------------------------
“运行”中输入命令:
regsvr32 hhctrl.ocx
(之后出来一个注册成功的对话框,确定)
regsvr32 itss.dll
(之后会出来一个注册成功的对话框,确定)
------------------------------------------------
再打开CHM的文件,问题得到解决了,CHM可以正常的阅读。
================================================
分析: CHM文件是与C:/WINDOWS/HH.exe相关联来打开的。HH.EXE 用界面是 hhctrl.ocx 控制,使用的协议是 ms-its 等协议,这些协议是由 itss.dll 提供服务的。所以我们重新注册了这两个文件之后,就解决了问题。  

原创粉丝点击