Mittwoch, 11. Juni 2008

Help file .chm bug "Page cannot be displayed"

Here is a stupid problem i found today.

--- 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\\AppData\Roaming\Microsoft\HTML Help\hh.dat

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
http://support.microsoft.com/?kbid=319247

Keine Kommentare: