How to find object IDs in a CHM file

I want to open a CHM file from my C # project. I want to open the corresponding section of the CHM file, so I use the following line of code

Help.ShowHelp(this, help_file, HelpNavigator.TopicId, topic_id);


The problem is that I don't have the source of the CHM file and I don't know its IDs. Is there a way to get the topic IDs of this CHM file?


source to share

1 answer

Extract the CHM with one of the various extractors (mostly chmlib based) and then view the extracted "* .hhc" file. This is a theme map that matches the tiles / ids theme for the urls inside the CHM file.

Note that some rare CHM files have a binary TOC and an hhc file, but the chances of this are very low as the default HH prevents this from happening.

Added later: Updated the number of extraction options for the Chmls Free Pascal tool. (although some of them are more functional dump than actual fetch): make sure you get one from 2.6.4+

 list [section number]
            Shows contents of the archive directory
 extract [saveasname]
            Extracts file "filename to get" from archive "filename",
            and, if specified, saves it to [saveasname]
 extractall [directory]
            Extracts all files from archive "filename" to directory
 unblockchm [filespec2] ..
            Mass unblocks (XPsp2 +) the relevant CHMs. Multiple files
            and wildcards allowed
 extractalias [basefilename] [symbolprefix]
            Extracts context info from file "chmfilename"
            to a "basefilename" .h and "basefilename" .ali,
            using symbols "symbolprefix" contextnr
 extracttoc [filename]
            Extracts the toc (mainly to check binary TOC)
 extractindex [filename]
            Extracts the index (mainly to check binary index)
            prints #IDXHDR in readable format
            prints #SYSTEM in readable format
            prints #WINDOWS in readable format
            prints #TOPICS in readable format



All Articles