今天碰到了一个奇怪的问题。前两天csdn上下载了一些电子书,今天忽然发现几个chm格式的文档无法显示,而我记得下载时看过都没有问题的,于是只好从网上寻找答案。最后发现是由于chm的文件路径包含了“#”造成的,更改文件夹的名称就解决了。附上chm出错的完整解决方案: 一 chm无法打开: 以下来自:http://blog.csdn.net/riffling/archive/2007/09/29/1805972.aspx 一.如果不能打开,可这样恢复文件关联: 1、从开始菜单中, 选择运行, 然后在命令窗口中,输入:regsvr32 C:\windows\system32\hhctrl.ocx 。确定,重新关联文件。 二. 安装hhupd 1. 在微软网站上下载hhupd.exe, 安装hh.exe后并运行。 3. window开始菜单,选择运行,然后在运行窗口中输入命令:regsvr32 c:\windows\system32\hhctrl.ocx 解决方法2是: 三.也许是 HH.EXE 所必需的某个组件出了问题。 但是不知道 HH.EXE 会用到些什么组件,所以上网查了一下,有人建议重新注册 hhctrl.ocx。我在系统目录下找到了 hhctrl.ocx,重新注册一下 hhctrl.ocx 试试:regsvr32 hhctrl.ocx。依然不能正常阅读 CHM。 既然如此,很有可能是协议出了问题。HH.EXE 用的是 ms-its 等协议,这些协议应该是由某个 DLL 文件提供服务的。问题是,是什么 DLL 呢?于是再用 Google 搜索 ms-its 协议。终于找到了,原来是一个 itss.dll 在做服务。不过网上查到的解决方案是修改注册表。 要修改 ItssRestrictions 注册表项以启用特定的安全区域,请按照下列步骤操作:
注册表修改之后还是不能打开! 四.操作系统的语言不是中文(经常出现这种情况) 五.可以试试改变此文件的名字.比如去掉多余的符号 六.如果都不能,最后一招就是,把电子书CHM格式转换为PDF文件: 二 chm无法显示 以下来自:http://hi.baidu.com/gzjason/blog/item/65923ad132068b3c9b5027c5.html 1、系统将chm默认关联到“%WINDIR%\hh.exe”,正常时双击即可打开。 2、当chm文件的路径中含有“#”“%”等字符时,chm文件能够打开,但将无法显示。 原因是:打开chm文件,相当于输入一条包含文件路径的命令行语句并执行。当路径中插入“#”“%”等字符后,将使命令行的语义发生变化,导致无法正常使用chm,而此时系统又不会有出错的提示,所以很多人被困扰了。 解决办法:移除路径中的特殊字符。 3、安装微软的安全更新 896358 或 890175 后,该补丁对chm的itss协议做了限制。有的chm使用了该协议,所以导致chm无法显示。 解决办法:可以修改注册表、修改安全级别、改itss.dll(这个是听说的);或者最简便的办法:右键点chm—>选属性—>选解除锁定,ok! 4、如果chm的文件名、或chm里包含的html文件的文件名含有非英文的语言字符,比如中文,麻烦就来了(原因疑与问题二相同)。这种chm必须在该种字符的操作系统下才能正常阅读,否则最多只能打开chm和查看书签,内容则无法显示。 解决办法:目前已经尝试过更改系统区域,将chm转换为pdf,使用AppLocale,使用虚拟打印机等,这些方法都不完美。第一种麻烦,而且需要权限,操作系统还不一定安装了该区域的内码;第二种无法将书签和正文同时转换为正确的编码,总会有乱码出现,处理几十MB以上的chm就开始非常缓慢;第三种基本无效……;第四种,虚拟打印机的安装需要权限,不能解决乱码,且对大体积的文件处理也非常缓慢。 |
|手机版|小黑屋|喜悦家园 ( 京ICP备12029068号-1 ) 对不起,请原谅,谢谢你,我爱你。
GMT+8, 2024-11-24 14:00 , Processed in 0.068516 second(s), 22 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.