--- Problem
I had the problem that some of my .chm help files didn't work and the viewer displayed a error like "This program cannot display the webpage" (german:"Dieses Programm kann die Webseite nicht anzeigen.")
Strangely enough some other files worked fine.
--- Trying
I tried some solutions I found, but they all did not work. Anyway here is what i did:
1. delete C:\Users\
2. clearing %tmp%
3. http://support.microsoft.com/kb/902225/
4. Registry
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions]
"MaxAllowedZone"=dword:00000001
"EnableFrameNavigationInSafeMode"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000003
I also adapted the path for
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\2.0\
which seems to be the new folder.
5. set user rights to full file access
--- Solution
Finally I found out the it is depending on the path the .chm file is placed. It did not work if the path to the file includes a # char anywhere in the string.
If you have the chm file open and right click on the help file in the task bar there is a menu item "Jump to URL..." (German: "Zur URL springen...") which displays the current URL. Here you can see what went wrong:
mk:@MSITStore:C:\Program%20Files\/#System\#Virtual\xVM%20VirtualBox\sdk\doc\VirtualBoxAPI.chm::/index.html
Some function placed a / in the path, i guess to escape the first #. That is a big problem for me since nearly all my programs are installed in such a folder, because I use this sign to sort installed software in different groups. This way they nicely appear at the top of the foldes and the large # char is a good eye catcher.
To avoid this problem you can copy the help file to another directory and it works just fine there:
mk:@MSITStore:C:\Downloads\NSIS.chm::/Contents.html
I guess the problem is that the # char is allowed in directory paths but not in URls.
--- Used Versions
HTML Help Control Version 6.0
IE 7.0.6001.18000
Vista SP1 (32bit)
Update
Oh, there is already a bug open for this issue