这篇经验是我从云盘里发现的,有些年头了,作者用的是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 下,这个文件包含一些内容可能引起错误
这个可能是系统Dll文件或者程序DLL文件被删除了,但是注册信息还留在注册表里面,所以系统启动时会加载,从而出现错误。
注册表修改法:“开始”→“运行”处输入“regedit”,在
“HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\”中,右边窗口找到残留的程序名删除。或者打开注册表编辑器 ,在编辑→查找中,输入出错文件名,把搜到的删除,按F3键,搜索下一个,直到删完所有的为止。
开始菜单-运行-输入msconfig回车
在里边的启动栏里把.dll前面的勾去掉就行了
1、开始——运行——msconfig——启动——把加载项*.dll的那个勾勾去掉。 重启电脑,通常到这就可以了,如果还弹出来再进行第二步
2、开始——运行——regedit 在下面的位置删除相应键值: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
.根据你的描述,那应该是一个已被删除了的病毒或间谍软件。但也有可能是你卸载某个软件不正确留下的残留.
dll因为某些原因(最大的可能是因为它是个病毒或流氓软件的dll文件,被杀软删除了)丢失了,但其相关的注册信息却还在,导致系统开机时还加载它,却又找不到它的文件,所以报错。
如果你点击“确定”后,系统没有什么不正常,并且可以正常运行的话,你可以用这个软件清理掉这个开机加载项,以后开机就不会出现这个信息了。
CHM打不开2009年01月02日 星期五 20:36复制别人一篇。懒得再写。
今天去上SSD8的课程,课中,一个同学叫我过去,说:“老师,你做的那个课件在桌面上打不开,是怎么回事呢?”我打了一下,提示:“mk:@MSITStore:C:\Documents and Settings\tinylee\桌面\SSD8教程。chm”,这样的问题我以前遇到过,是在小松的机子上。当时我论定是他的机子中病毒了,没有去解决,今天遇到这样的问题,这样解释显然是不行的啊。
那个课件的制作一直是我引以为傲的事情,今天居然打不开了,挺郁闷的,我说:“你先去Carnegie上面吧,我研究一下。”
正说着,又有两个男生发生了同样的事情,我开始怀疑是不是他们从FTP下载的时候,文档被破坏了,我在教师机上重新下了一个,打开没有问题。
这一下挑起了我的兴趣,开始在网上找资料,找了好久,试了很多办法,有一个方法好像有效:在打开chm的路径上,不能出现汉字。也就是说:把那个chm的路径变成:d:\ssd8.chm,打开就没有问题了。
可是这显然没有解决问题的根本,我继续在网上找找啊……终于找到一篇 :)
----------------------------------------------------------------------
不能打开CHM文件的原因分析及解决方法
这次重装了Windows系统,心想不应该再有什么问题,没想到居然碰上了CHM打不开的情况。双击一个中文命名的CHM文件例如“全唐诗。CHM”,弹出一个对话框:“不能打开文件:mk:@MSITStore:F:\全唐诗。chm”
记得以前这种情况也发生过,当时因为事情多,没有功夫理它,只是把文件名改成英文了事。现在又发生这种情况,一定要把它了结掉。
我本来想打开的CHM文件应该是“F:\全唐诗。chm”,为什么错误报告中提到的文件名前面多了一串乱七八糟的“mk:@MSITStore:”?难道系统把我本来的文件名擅自篡改了吗?必须观察一下系统打开文件的过程。我使用了工具filemon(http://www.sysinternals.com/ntw2k/source/filemon.shtml)
来监视系统打开文件的过程,结果发现系统在发出“叮”的一声报告错误之前试图对以下文件取属性:F:\全唐诗。CHI 但是RESULT为“NOT FOUND”。难道它要打开的文件是“全唐诗。CHI”?于是我把文件的扩展名改成CHI,结果是连文件关联都不存在了,更别说打开了。
用Filemon没有解决任何问题。看来只好求助于SoftICE来追踪了。我首先想到的是在CreateFileA这个API上面设个断点,这样好监视系统究竟打开了什么文件,结果发现系统试图打开一个叫“F:???.CHM”的文件并且失败了:galiletteMay 18 2004, 09:55 AM
看来问题就在这里了,现在要搞清楚这个“???.chm”究竟是怎么来的,为什么文件名无端地变成了问号。继续追踪,发现在打开文件之前,系统调用一个叫WideCharToMultiByte的API把Unicode编码的字符串转化成Ansi字符串,但是转化的结果却是错误的:galiletteMay 18 2004, 09:56 AM
现在错误的关键原因已经找到了,就是WideCharToMultiByte这个API的调用有问题。查“Win32 Programmer's Reference”手册或者MSDN发现,这个API的第一个参数是代码页(CodePage),而这个代码页与Windows的语种有关。例如简体中文的CodePage是936,繁体中文是950,英文就是1252。仔细观察上面的跟踪过程,我发现我机器的代码页居然是1252(英文),而不是简体中文的936。 这下我明白了,我赶紧打开控制面板,找到“区域设置”一
解决办法:竟然是“英语(美国)”。立即把它改成“中文(中国)”,它说要重新启动,我没理它,不重启。重新打开“全唐诗.CHM”,终于Ok了。