Windows XP不能打开chm文件
: 展开
1。如果提示是:如果提示是Internet Explorer 不能链接到您请求的网页或者打开后“页面无法显示”。请下载jjhd.zip,执行。或在要打开的CHM文件上右键属性,会在底下属性中多了一个“解除锁定”,点击后就可以正常显示了。
jjhd.reg内容
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000003
"UrlAllowList"=""
以上内容复制到一个文本文件,然后把文件名后缀改成.reg,然后点击即可
2。如果提示是:"不能打开文件 mk:@MSITStore:\****.chm"
造成这个故障有可能是你的系统中的Hhctrl.ocx文件丢失或者被其他版本的 Hhctrl.ocx覆盖掉了,可以从相同的电脑或者安装光盘中拷贝过来一个,然后重新注册Hhctrl.ocx文件:具体步骤如下:
第一步:退出正在运行的所有程序,单击“开始-〉程序”;
第二步:在运行对话框键入"regsvr32 c:\windows\system\hhctrl.ocx"回车,或”regsvr32 /i hhctrl.ocx“出现"DllRegisterServer成功"消息确定,重启计算机即可。
3。其它方法
3.1,从 windows的控制面板进入“语言和区域”-“区域选项”,如果区域不是中文请改为中文
3.2,把文件名称改为E 文的简单一点(a.chm),copy 到一个根目录下面,打开看看,如果不行,请重新下载,有的时候下载过程出了问题,看看是否OK
3.3,如果多数CHM都打不开,试试重新注册regsvr32 itss.dll
3.4,开始--运行--输入“regedit”,打开注册表,找到以下分支:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
在其下新建DWORD键MaxAllowedZone,将其值取成3试一下
3.5,没有正确安装或被你删除了hh.exe文件,你可以到 Windows\system32下查一下。如果是这样那你可以从别人的电脑上copy一个hh.exe ,放到上面那个目录里,再双击一个chm文件,让你选择程序就选那个C:\windows\hh.exe ,这样就恢复了chm文件和hh.exe的关联
3.6,如果以上几种情况都好的话,删除"hh.dat", 在目录
\Documents and Settings\%username%\Application Data\Microsoft\HTML Help 下,这个文件包含一些内容可能引起错误
4,开始--运行--输入“regedit”,打开注册表,找到以下分支:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions
在其下新建DWORD键MaxAllowedZone,将其值取成3试一下
5,没有正确安装或被你删除了hh.exe文件,你可以到 Windows\system32下查一下。如果是这样那你可以从别人的电脑上copy一个hh.exe ,放到上面那个目录里,再双击一个chm文件,让你选择程序就选那个C:\windows\hh.exe ,这样就恢复了chm文件和hh.exe的关联
6,如果以上几种情况都好的话,删除"hh.dat", 在目录
\Documents and Settings\%username%\Application Data\Microsoft\HTML Help 下,这个文件包含一些内容可能引起错误
第一种
问题的发生,是由于hhctrl.ocx的版本号出现错误或未正确注册。原因在于安装的其他软件用hhctrl.ocx的旧版本替换了原来的版本。IE6SP1中,这个文件的版本号应为5.2.3735.0。可以看看你的系统这个文件的版本号。位于winnt/system32这个文件夹。大小504K(英文版本)。你可以从其他相同的系统(IE版本也相同)中COPY一份粘贴到你的系统相应文件夹中。然后注册一下。
注意:
1、先替换winnt/system32/dllcache文件夹的这个文件,后替换winnt/system32文件夹里的这个文件;
2、如果看不到这个文件,先工具--文件夹选项中,设置显示隐藏文件,并设置显示系统文件;
3、注册的方法是
开始--运行,输入regsvr32 hhctrl.ocx之后出来一个注册成功的对话框,确定然后重启系统;
4、在WINNT下
双击hh.exe文件,没有出现打开界面;
另外:在WINDOWS安装了安全更新 896358 后,下载的CHM文件无法打开最简单的办法是,点击CHM文件的属性,发现“常规”栏下多出几行字:“安全:此文件来自其他计算机,可能被阻止以帮助保护计算机”点击旁边的解除锁定即可解决
第二种
下面是从网上摘抄的
在某些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
我按照 安装 Windows Server 2003 Service Pack 1、MS05-026 或 MS04-023 后,无法使用某些采用 InfoTech 协议的 Web 应用程序 中所述,对客户端注册表作出如下修改,再次尝试执行那些CHM文件,成功了!
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\helpfiles\;file://\\\helpfiles"
需要提到一点的是,默认情况下,子健1.x 下可能并不存在 ItssRestrictions子健,您需要手动创建它,然后在其下创建字符串键值 UrlAllowList 。
关于此补丁及相关问题的描述,请参考如下KB:
安装 Windows Server 2003 Service Pack 1、MS05-026 或 MS04-023 后,无法使用某些采用 InfoTech 协议的 Web 应用程序
MS05-026:HTML 帮助中的漏洞可能允许远程执行代码
安装安全更新 896358 后下载的 Compiled Help Module 文件无法打开”
我的问题明显不是这个问题,原因是我自己的机器我知道,在能打开chm文件,到打开chm文件
无法显示页面这段中间的时间里面,我并没有更新,只是做了一些系统修改。
但是这篇文章还是对我有启发的,比如提到了InfoTech协议。以上说明结束。
虽然网上关于这方面的文章很多,你可以自己搜索看看,但是我当时没有搜索到能针对我的问题解决的方法,
于是决定自己进入测试。以下是测试方法:(问题很简单,主要是讲一下思路,金州注释)
1.把现在打开chm文件无法显示的状态,做一个系统还原点。
2.RegSnap抓一个快照。
3.导入以前备份的注册表。
结果chm文件打开和以前一样了,就是可以观看正常了。
金州总结为是注册表某些项目丢失原因引起的。
4.RegSnap再抓一个快照,比较一下。
发现项目太多(我备份的注册表比较早了,哈哈),无法详细判断。
这条路断了。
5.大约呆坐着十分钟之后,忽然想起InfoTech协议“ms-its”协议,这就是我搜索到的那篇文章
的启发了,哈哈,这个协议的执行文件是C:\WINDOWS\system32\itss.dll
6.查看这个dll还在。所以准备进行第二种推测,那就是它相关联的调用注册表丢失。
7。开始测试以上推断。搜索注册表有关itss.dll项目,这个比较多,不宜以列举
8.备份所有相关项目。
9.把系统还原到打不开chm时候的状态。
10。导入备份的itss.dll项目,结果可以观看chm文件了,问题解决。证明猜测正确,原因找到。
11.从新还原到打开chm无法显示状态。
12。逐一测试每一个每一个注册表项目,如此循环,直到找到确定关键是那几个注册表项目。
13.最后确定为两个关键项目。如下:
项目1.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{9D148291-B9C8-11D0-A4CC-0000F80149F6}]
@="Microsoft InfoTech Protocols for IE 4.0"
[HKEY_CLASSES_ROOT\CLSID\{9D148291-B9C8-11D0-A4CC-0000F80149F6}\InprocServer32]
@="C:\\WINDOWS\\System32\\itss.dll"
"ThreadingModel"="Both"
[HKEY_CLASSES_ROOT\CLSID\{9D148291-B9C8-11D0-A4CC-0000F80149F6}\NotInsertable]
[HKEY_CLASSES_ROOT\CLSID\{9D148291-B9C8-11D0-A4CC-0000F80149F6}\VersionIndependentProgID]
@="MSITFS"
项目2.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\PROTOCOLS\Name-Space Handler\mk\*]
"CLSID"="{9D148291-B9C8-11D0-A4CC-0000F80149F6}"
14.总结,问题确实是InfoTech协议注册表关联丢失问题
Explorer不能链接到您请求的网页或者打开后“页面无法显示”;
2、在要打开的CHM文件上右击选择属性,在底下属性中多了一个“解除锁定”;
3、提示:“不能打开文件mk:@MSITStore:/****.chm”;
4、从相同的电脑或者安装光盘中拷贝过来一个,然后重新注册Hhctrl.ocx文件即可;
具体步骤如下:
a、退出正在运行的所有程序,单击“开始-〉程序”;
b、在运行对话框键入"regsvr32
c:/windows/system/hhctrl.ocx"回车;
c、或“regsvr32
/i
hhctrl.ocx”出现“DllRegisterServer成功”消息确定,重启计算机即可。
请参考以下步骤:
改文件名和所在目录为英文名称。
在控制面板-区域和语言选项-高级 把三个“中文”全选上。
检查下载的文件是否不完整或者受损。
打开控制面板-管理工具-服务,启动Help and Support启用在此计算机上运行帮助和支持中心。如果停止此服务,帮助和支持中心将不可用。如果禁用服务,任何直接依赖于此服务的服务将无法启动。
查看HH.EXE的动态链接库文件是否受损。检查一下系统目录下是否有Hh.exe这个文件(如C:\Windows下),这个文件用来打开CHM文件。如果破坏,请从别的正常的XP系统下System32文件夹下复制HHActiveX.dll、hhctrl.ocx、hhsetup.dll等三(或者两个)个文件,到你的机器上的相同位置下,即可解决。
如果下载的文件没问题,系统目录下也有Hh.exe,仍打不开chm文件,可能是程序所需链接库文件受损,请下载安装微软的Hhupd.exe就能解决问题。下载地址:http://www.kaoyan.com/uploads/bbs/hhupd.exe
点击开始-运行(或按win键+R 组合键也可打开“运行”) 输入
(注意空格)regsvr32 %windir%\\system32\\itss.dll