chm是微软的帮助文档,许多程序的说明文档还有电子书都是用它制作的。
我们下载一个chm文档后可能经常会有打不开的情况,而在其它的一些电脑上却能正常打开,这说明不是文档本身的问题,而是系统设置的问题。其实这是为了安全而作的一种限制,我们知道很多不安全的东西大多是通过网页传播的,网页里面可能含有各种脚本,能执行很多功能,而chm文件本质上就是编 译过的网页。从网上直接下载的网页、chm文件和exe程序都会被系统标记为来源于网络的,是不安全的,一般打开的时候都会出现警告,把“打开此文件前总 是询问”前的钩去掉可以让它对该文件不再提示。然而有时候打开chm文件不会出现提示,直接显示“该页无法显示”或者“已取消到该网页的导 航”“internet explorer 不能链接到您请求的网页”之类的错误,这该怎么办呢?
在chm文件上点右键->属性->常规->解除锁定,这样就可以打开了。但是上述方法并不总是有效的,也许有的版本的系统根本找不到“解除锁定”这个选项,这时可以通过修改注册表解决,将以下内容打开保存到为后缀为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”=”"这是最有效的方法,对于各种系统均能用。那么“MaxAllowedZone”的值为3是什么意思呢?AllowedZone是允许的区域,所有的区域包括以下几个:本地计算机 internet 本地intranet 可信站点 受限站点我们可以在internet选项里面找到有后四个区域,
值为0表示本地计算机,为1则表示前两个,为2为前三个,为3为前四个。所以”MaxAllowedZone”=dword:00000003 的含义为允许在 本地计算机、internet、本地intranet、可信站点 上打开该文件。REGEDIT4是注册表编辑器的版本,vista和windows 7里面为REGEDIT5,不过老的版本还是照样支持的。
如果chm文档所在文件夹有特殊符号也可能导致打不开的,比如新建一个文件夹,名字为“abc#”,把chm文件放进去就会打不开。
既然网络上的东西被认为是不安全的,那么为什么网上的网页里的脚本可以直接运行,下载到本地保存再打开会有警告呢?
这是因为我们浏览网页的时候网页的权限是比较低的,不能访问本机上的数据等,而如果下载到本地再打开就是以本地管理员的身份运行的,可能对系统造成损害。但是其实这个限制说实话没什么用,ie经常有各种漏洞使木马可以借此运行,本地的网页一般是安全的。