[ZT]解决CHM文档无法正常打开故障

今天起了個大早。看到一個chm資源文檔,下載後卻無法打開。網路上收集了幾個解決方法,沒想到第一步就輕鬆搞定。

———-1————

http://www.3-stones.com/2006/02/chm.html

1.如果Chm文件为Download而来,在文件上点右键,属性,常规,解除锁定。

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

MaxAllowedZone 本地计算机区域 本地Intranet 区域 受信任的站点区域 Internet 区域 受限站点区域
0 允许 阻止 阻止 阻止 阻止
1 允许 允许 阻止 阻止 阻止
2 允许 允许 允许 阻止 阻止
3 允许 允许 允许 允许 阻止
4 允许 允许 允许 允许 允许

———-2————

http://bbs.pcworld.com.cn/viewthread.php?tid=13984

 

小知识: CHM 意为 Compiled HTML。以CHM为扩展名的文件图标通常为一个带问号的文档图标,表示帮助文档,是 Microsoft 自 Windows 98 以来提供的一种帮助文档格式的文件,用于替代 Windows 95 下的 HLP(Help) 文件。Microsoft 自 Windows 98 以来,操作系统中都自带解释器(打开 CHM 文件的工具),即 Windows 安装目录下的 HH.EXE。CHM 文件可以通过官方免费提供了 HTML Help Workshop 生成,它的源文件是 HTML 文件。现在网络上很多电子书籍都被制作成 CHM 格式。

CHM 的实质是通过几个特殊的协议访问压缩存在在 CHM 文件中的网页。所以,我估计可能是防火墙有鬼。于是把防火墙统统仔细检查了一遍,没有限制 CHM 文件打读取。关闭所有防火墙,CHM 仍然不能正常阅读。
也许是 HH.EXE 所必需的某个组件出了问题。但是不知道 HH.EXE 会用到些什么组件,所以上网查了一下,有人建议重新注册 hhctrl.dll。我在系统目录下找到了 hhctrl.ocx,没有找到 hhctrl.dll。就当是网上写错了,重新注册一下 hhctrl.ocx 试试:regsvr32 hhctrl.ocx。依然不能正常阅读 CHM。
既然如此,很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议,这些协议应该是由某个 DLL 文件提供服务的。问题是,是什么 DLL 呢?于是再用 Google 搜索 ms-its 协议。终于找到了,原来是一个 itss.dll 在做服务。不过网上查到的解决方案是修改注册表。看着那一堆注册表项就头痛,还是先试试偷懒的办法吧——重新注册DLL:regsvr32 itss.dll。
再试,嘿,好了,CHM 又可以正常打开了。
至于 CHM 不能打开的原因,据网上说,多半是因为 Microsoft 最近修复的一个关于 HTML Help 的漏洞有关系。不过我机器上的状况不太符合特征,管它呢,反正我又能阅读 CHM 了

———-3————

http://support.microsoft.com/kb/892675

…前略…

症状

原因

解决方案

示例 1:使用 URLAllowList 项启用特定 URL

示例 2:使用 MaxAllowedZone 项启用安全区域

示例 3:使用 URLAllowList 项和 MaxAllowedZone 项

在域中部署注册表项

更多信息

系统管理员概述和示例

Internet Explorer 安全区域

组策略

对基于 x64 的 Microsoft Windows 版本的技术支持

…中略…

示例 1:使用 URLAllowList 项启用特定 URL

警告:应只包括受信任网站的 URL。
本示例中的 .reg 文件使得在以下远程内容中能够重新承载 HTML 帮助 ActiveX 控件:


位于 \\productmanuals\helpfiles 文件夹中的所有 .chm 文件


位于 [url]http://www.wingtiptoys.com/help[/url] 中的 Web 应用程序。

将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"UrlAllowList"="\\\\productmanuals\\helpfiles;[url]http://www.wingtiptoys.com/help/[/url]"

不能在添加到 UrlAllowList 注册表项的任何网站的 URL 字符串中使用通配符。例如,不能使用以下 URL 字符串:

“UrlAllowList"="http://*.wingtiptoys.com”

但可以使用以下 URL 字符串:

“UrlAllowList"="http://help.wingtiptoys.com”

此字符串可使下列网站能够承载 HTML 帮助 ActiveX 控件:



[url]http://help.wingtiptoys.com/research[/url]



[url]http://help.wingtiptoys.com/sales[/url]

回到顶端

示例 2:使用 MaxAllowedZone 项启用安全区域

警告:MaxAllowedZone 项会启用特定区域中的所有网站。使用 UrlAllowList 项可能较为安全。如果必须使用 MaxAllowedZone 项,请不要将此值设置得高于所需值。如果将 MaxAllowedZone 值设为 3 或更高,则系统会很容易受到来自 Internet 的攻击。

注意:默认情况下,MaxAllowedZone 项的值设置为 0。下表概述了 MaxAllowedZone 项的值对各个项的解释。

MaxAllowedZone

本地计算机区域

本地 Intranet 区域

受信任的站点区域

Internet 区域

受限站点区域

0

允许

阻止

阻止

阻止

阻止

1

允许

允许

阻止

阻止

阻止

2

允许

允许

允许

阻止

阻止

3

允许

允许

允许

允许

阻止

4

允许

允许

允许

允许

允许

将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件。该 .reg 文件使 Intranet 区域中的所有内容都能够承载 HTML 帮助 ActiveX 控件。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000001

回到顶端

示例 3:使用 URLAllowList 项和 MaxAllowedZone 项

警告:MaxAllowedZone 项会启用特定区域中的所有网站。使用 UrlAllowList 项可能较为安全。如果必须使用 MaxAllowedZone 项,请不要将此值设置得高于所需值。如果将 MaxAllowedZone 值设为 3 或更高,则系统会很容易受到来自 Internet 的攻击。

将以下文本粘贴到文本编辑器(如记事本)中。然后用 .reg 文件扩展名保存该文件。下面的 .reg 文件可使 Intranet 区域中的所有内容都能够承载 HTML 帮助 ActiveX 控件。此 .reg 文件还可使两个 Internet 网站能够承载该控件。

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"UrlAllowList"="http://www.wingtiptoys.com/;[url]http://www.contoso.com/[/url]"

回到顶端

在域中部署注册表项

建议您使用组策略将本文示例中提到的设置部署为启动脚本。也可将这些设置部署为登录脚本。但是,此方法因存在权限约束而不够理想。

以下步骤是一个示例,演示如何将示例 1 中的设置部署为组策略启动脚本。

1.

将以下文本粘贴到文本编辑器(如记事本)中:

REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"UrlAllowList"="http://myintranetapplication/help/helpfiles;[url]http://www.wingtiptoys.com/help/helpdocuments[/url]"

2.

将该文件保存为 .reg 文件,并将其命名为 AllowTrustedSites.reg。

3.

将以下文本粘贴到文本编辑器(如记事本)中:

REGEDIT.EXE /S AllowTrustedSites.reg

4.

将该文件保存为批处理文件,并将其命名为 AllowTrustedSites.bat。

5.

将该批处理文件导入组策略对象 (GPO) 中。为此,请按照下列步骤操作:

a.

将在步骤 4 中创建的批处理文件和在步骤 2 中创建的 .reg 文件粘贴到 \\DomainName\SysVol\DomainName\Policies\GUID of the selected GPO\Machine\Scripts\Startup 文件夹中。

b.

在要运行该组策略对象的计算机上,单击“开始”,单击“运行”,键入 dsa.msc,然后单击“确定”。

c.

右键单击您的域,然后单击“属性”。

d.

单击“组策略”,然后单击“新建”。

e.

键入要用于该策略的名称,然后按 Enter 键。

f.

单击“编辑”。

g.

依次展开“计算机配置”和“Windows 设置”,然后单击“脚本 (启动/关机)”。

h.

在右窗格中,双击“启动”,然后单击“添加”。

i.

找到并单击在步骤 4 中创建的批处理文件。

j.

单击“添加”。

k.

单击“确定”,单击“是”,然后单击两次“确定”。

回到顶端

…後略…

No Comments

(Required)
(Required, will not be published)