Search code examples
c#chmhelpfile

Open a .CHM file to a Specific Topic?


I have created a .CHM file and then when I open it in c# I get the First topic. I want to open it to a specified topic. This is the code I use right now to open it.

Help.ShowHelp(this, "./Resources/ServerHelp.chm");

I want to be able to open it to a specific topic like Audio. I tried using

Help.ShowHelp(this, "./Resources/ServerHelp.chm", HelpNavigator.Topic, "Audio");

and it showed me page not found. Can i get some Help with my Help please !! :P


Solution

  • This can be achieved by the following steps:

    1. Identify what names the chm uses to refer the internal topics. This is done by

      • Open the CHM file, and right click in the topic page and select Properties.
      • The property called: Address (URL) Contains the topic page name at its end.

      Here is an example:

      mk:@MSITStore:C:\Program%20Files\Silsila%2011\Silsila.chm::/Audio.htm
      

      Here the topic page name is "Audio.htm"

    2. Call the Help.ShowHelp() function with the correct parameters as shown below

      Help.ShowHelp(this, "./Resources/Silsila.chm", HelpNavigator.Topic, "Audio.htm");
      

    That should do it. you can fine the topic name of the pages you want using Step 1, and then use Step 2 to open the help file on that page.