Как найти идентификаторы тем в файле CHM - PullRequest
4 голосов
/ 06 марта 2012

Я хочу открыть файл CHM из моего проекта C #. Я хочу открыть соответствующий раздел файла CHM, поэтому я использую следующую строку кода

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

Проблема в том, что у меня нет источника файла CHM, и я не знаю его идентификаторов. Есть ли способ получить идентификаторы темы этого файла CHM?

1 Ответ

2 голосов
/ 06 марта 2012

Извлеките CHM с помощью одного из различных экстракторов (в основном на основе chmlib), а затем посмотрите в извлеченный файл "* .hhc". Это тематическая карта, которая соответствует тематическим плиткам / идентификаторам внутренним URL-адресам в файле CHM.

Обратите внимание, что некоторые редкие файлы CHM имеют двоичное оглавление и не имеют файла hhc, но шансы на это очень малы, так как значения по умолчанию для HH его не поощряют.

Добавлено позже: Количество параметров извлечения инструмента Free Pascal chmls обновлено. (хотя некоторые из них являются скорее функциональностью дампа, чем настоящим извлечением): убедитесь, что вы получили один из 2.6.4 +

 list        [section number]
            Shows contents of the archive's 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
            "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)
 printidxhdr 
            prints #IDXHDR in readable format
 printsystem 
            prints #SYSTEM in readable format
 printwindows 
            prints #WINDOWS in readable format
 printtopics 
            prints #TOPICS in readable format

...