我正在尝试打开.chm文件.
我下载了源代码,将其解压缩,然后双击Waffle.chm
并单击"打开",但无论我单击chm文件中的哪个元素,我都会收到消息:
Navigation to the webpage was canceled.
What you can try:
Retype the address.
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?
Eri*_*ski 166
摘要
从网络驱动器(或UNC路径)打开时,Microsoft安全更新896358和840315阻止显示CHM文件内容.这是Windows尝试阻止病毒/恶意软件的攻击媒介感染您的计算机,并阻止了通过此Info文件使用的"InfoTech"协议绘制数据的.chm文件.
Microsoft对此问题的摘要:http: //support.microsoft.com/kb/896054
解决方案
如果您使用的是Windows Server 2008,Windows 7,则Windows已创建快速修复. 右键单击chm文件,您将看到"yourfile.chm Properties"对话框,在底部会出现一个名为"Unblock"的按钮.单击取消阻止并按确定,然后尝试再次打开chm文件,它可以正常工作.在WindowsXP(SP3)之前,此选项不适用于早期版本的Windows.
通过将chm文件移出网络驱动器来解决问题.您可能不知道您正在使用网络驱动器,请立即仔细检查:右键单击.chm文件,单击属性并查看"位置"字段.如果它以这样的两个反斜杠开头:\\epicserver\blah\
那么你使用的是网络驱动器. 所以要修复它,复制chm文件,然后将其粘贴到本地驱动器中,如C:\或E:. 然后尝试重新打开chm文件,windows不会吓坏.
最后,如果您无法从联网驱动器复制/移动文件.如果你必须在它所在的位置打开它,并且你使用的是较小版本的Windows,如XP,Vista,ME或其他版本,你必须手动告诉Windows不要对这个.chm文件感到不满. HHReg(HTML帮助注册实用程序)实用程序自动执行此任务. 基本上你下载HHReg实用程序,加载.chm文件,按OK,它将创建必要的注册表项,告诉Windows不要阻止它.欲了解更多信息:http: //www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/
Windows 8或10? - >升级到Windows XP.
Mar*_*ort 11
除了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;
Run Code Online (Sandbox Code Playgroud)
我被告知在非分叉文件系统(如FAT32)上有隐藏文件,但我还没有到底.
Ps Delphi的DeleteFile()也应该识别分叉.
最终的解决方案是允许InfoTech协议在Intranet区域中工作.
将以下值添加到注册表,问题应该解决:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
Run Code Online (Sandbox Code Playgroud)
更多信息:http://support.microsoft.com/kb/896054
归档时间: |
|
查看次数: |
118147 次 |
最近记录: |