On Windows 7 I'm unable to open any local CHM files in a folder called Local.Ebooks.CHMs
. I tried modifying the registry, but nothing helped. How can I open these CHM files successfully?
3 Answers
As noted in my comment above, I was able to replicate the bug. Strangely enough, it is not the periods that are causing the issue. Windows 7 seems to have a problem with the string .chm
(case-insensitive) anywhere in the folder hierarchy! This seems to be related to KB 319247, where #
in a folder name is resolved incorrectly. Thanks, @Bob!
For example, if you try to open a CHM file in Folder.chm
or Folder.CHMs/Folder
, you will be presented with a File Download dialog and a broken CHM file reporting "Navigation to the webpage was cancelled."
As a workaround, you can rename the folder, removing the period .
before the offending chm
(case-insensitive) string. Unfortunately, it is unlikely that Microsoft will ever fix these bugs, seeing as HTML Help was last updated in 2002...
Video demo: youtube.com/watch?v=7x40fHXRQqU
-
Does it only matter if it's in the folder the file is in, or does it break if it's in any parent folder name?– nhinkleCommented May 21, 2012 at 23:10
-
1
-
So would it be fair to say that the solution to the OP's problem is "rename the folder"? I know it's a hack, but that'd at least let him open his files.– nhinkleCommented May 21, 2012 at 23:14
-
1@iglvzx This question and answer are interesting. If the viewer interprets
#
s as an anchor tag, could it be that it's trying to open the folder that ends in.chm
as a file? Would.html
affect it the same way? How about.chm
not at the end? Now that I think about it, if the implementation is bad enough it could be stopping at the first.chm
it encounters, even if not at the end of a folder/file name.– BobCommented May 21, 2012 at 23:28 -
1As a precautionary measure, don't put
.chm
s in a unicode path. This is one buggy viewer! I can kinda see why they abandoned it.– BobCommented May 21, 2012 at 23:35
If the .chm files were downloaded from the internet, then they will be BLOCKED by Windows. You can unblock them by opening the Properties dialog and checking the Unblock box at the bottom.
Summary
Microsoft Security Updates 896358 & 840315 block display of CHM file contents when opened from a network drive (or a UNC path). This is window's attempt to stop attack vectors for viruses/mal-ware from infecting your computer and has blocked out the .chm file that draw data over the "InfoTech" protocol, which this chm file uses.
Microsoft's summary of the problem: http://support.microsoft.com/kb/896054
Solutions
If you are using Windows Server 2008 or Windows 7, or other modern Windows OS, windows has created a quick fix. Right click the chm file, and you will get the "yourfile.chm Properties" dialog box, at the bottom, a button called "Unblock" appears. Click Unblock and press OK, and try to open the chm file again, it works correctly. This will not work for Windows XP or other earlier versions of windows.
Solve the problem by moving your chm file OFF the network drive. You may be unaware you are using a network drive, double check now: Right click your .chm file, click properties and look at the "location" field. If it starts with two backslashes like this: "\\epicserver\blah\", then you are using a networked drive. So to fix it, Copy the chm file, and paste it into a local drive, like C:\ or E:. Then try to reopen the chm file, windows does not freak out.
Last resort, if you can't copy/move the file off the networked drive. If you must open it where it sits, and you are using a lesser version of windows like XP, Vista, ME or other, you will have to manually tell Windows not to freak out over this .chm file. HHReg (HTML Help Registration Utility) Utility Automates this Task. Basically you download the HHReg utility, load your .chm file, press OK, and it will create the necessary registry keys to tell Windows not to block it. For more info: http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/
*.CHM*
(case-insensitive). Interesting...