Windows 打开一个CHM文件会产生:";“网页导航已取消”;
我正在尝试打开一个.chm文件 我下载了源代码,将其解压缩,然后双击Windows 打开一个CHM文件会产生:";“网页导航已取消”;,windows,chm,Windows,Chm,我正在尝试打开一个.chm文件 我下载了源代码,将其解压缩,然后双击Waffle.chm并单击“打开”,但无论我单击chm文件中的哪个元素,我都会收到以下消息: Navigation to the webpage was canceled. What you can try: Retype the address. 这里发生了什么事?摘要 当从网络驱动器(或网络驱动器)打开时,Microsoft安全更新896358和840315 CHM文件内容的块显示。这是Windows试图阻止病
Waffle.chm
并单击“打开”,但无论我单击chm文件中的哪个元素,我都会收到以下消息:
Navigation to the webpage was canceled.
What you can try:
Retype the address.
这里发生了什么事?摘要 当从网络驱动器(或网络驱动器)打开时,Microsoft安全更新896358和840315 CHM文件内容的块显示。这是Windows试图阻止病毒/恶意软件的攻击向量感染您的计算机,并阻止了通过“InfoTech”协议绘制数据的.chm文件,该chm文件使用该协议 Microsoft对该问题的总结: 解决方案
\\epicserver\blah\
,则您使用的是网络驱动器因此,要修复它,请复制chm文件,并将其粘贴到本地驱动器中,如C:\或E:。然后尝试重新打开chm文件,windows不会崩溃Windows 8或10?-->升级到Windows XP。除了Eric Leschinski的答案之外,由于这是stackoverflow,一种编程解决方案: Windows使用隐藏文件叉将内容标记为“已下载”。截断这些将取消阻止文件。用于CHM的流的名称为“Zone.Identifier”。打开文件时,可以通过追加:streamname来访问流。(第一次保留备份,以防RTL搞砸!) 在Delphi中,它将如下所示:
var f : file;
begin
writeln('unblocking ',s);
assignfile(f,'some.chm:Zone.Identifier');
rewrite(f,1);
truncate(f);
closefile(f);
end;
有人告诉我,在非分叉文件系统(如FAT32)上存在隐藏文件,但我还没有弄清楚到底是什么
另外,Delphi的DeleteFile()还应该识别fork。转到开始
键入regsvr32 hhctrl.ocx
您应该会收到如下成功消息:
“hhctrl.ocx中的DllRegisterServer成功”
现在再次尝试打开CHM文件。最终解决方案是允许InfoTech协议在intranet区域中工作 将以下值添加到注册表,应解决此问题:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
此处的详细信息:“取消阻止”文件可修复此问题。截图:
Win 8 x64:
只需将其移动到另一个文件夹或重命名您的文件夹(在我的例子中:我的文件夹是“c”)。
避免在文件夹名称上使用符号。用字母命名
。< /P> < P>我用C++ Builder在程序中用这个方法固定。p> 在分配CHM帮助文件,
Application->HelpFile=HelpFileName
之前,我检查它是否包含“Zone.Identifier”流,当它包含时,我只需删除它
String ZIStream(HelpFileName + ":Zone.Identifier") ;
if (FileExists(ZIStream))
{ DeleteFile(ZIStream) ; }
另一种方法是使用不同的第三方软件。显示更多第三方软件以查看chm文件
我试过SumatraPDF,效果很好。显然有不同级别的身份验证。我读过的大多数文章都告诉您将MaxAllowedZone设置为“1”,这意味着允许本地计算机区域和intranet区域,但“4”允许访问“所有”区域 有关更多信息,请阅读本文: 这就是我的注册表的外观(我不确定它是否适用于通配符,但它似乎适用于我):
Windows注册表编辑器5.00版
[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]
[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
“MaxAllowedZone”=dword:00000004
[HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
“UrlAllowList”=“ies-inc.local”;http://www.*;http://*;https://www.*;https://*;”
作为补充说明,奇怪的是,“UrlAllowList”键被要求在另一台PC上工作,而不是在我的测试PC上。它可能根本不是必需的,但当我添加它时,它解决了问题。用户可能没有关闭原始文件或类似文件。所以这只是一个考虑。我建议尽可能少地尝试并测试它,然后在需要时添加。一旦确认,就可以根据需要进行部署。祝你好运
编辑:p.S.另一种有效的方法是使用mklink/d(Windows 7或更高版本中的符号链接)本地映射到网络的路径,但映射网络驱动器号(Z:用于测试)不起作用。这是值得思考的,我不需要“解锁”任何文件。此外,接受的“解决方案”也没有解决我的问题。移动到本地文件夹是最快的解决方案,其他任何解决方案都不适用于我,尤其是因为我不是系统管理员(无法编辑注册表等),这是工作环境中的典型情况
Create a folder in C:\help drive, lets call it help and copy the files there and open.
不要复制到mydocuments或其他任何地方,这些位置通常位于office安装程序中的网络驱动器上,不会工作。我在WinXP SP3或WinVista Home Premiums解决方案1上都没有看到“取消阻止”按钮
Create a folder in C:\help drive, lets call it help and copy the files there and open.