Перечислите все темы из файла CHM - PullRequest
7 голосов
/ 16 февраля 2010

Я пытаюсь получить файл CHM, чтобы открыть определенную тему, используя C #.

Я пытался использовать

Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle");

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

Ответы [ 4 ]

7 голосов
/ 17 февраля 2010

Нет, функция HtmlHelp API слишком примитивна для поддержки перечисления тем. Вы можете использовать файловый менеджер 7-zip, чтобы заглянуть внутрь файла .chm. Щелкните правой кнопкой мыши файл и выберите «Открыть внутри». Или воспользуйтесь использованным инструментом создания справки.

4 голосов
/ 07 мая 2011

Если открыть файл CHM и щелкнуть правой кнопкой мыши на странице справки, вы можете выбрать команду «Свойства».
В середине страницы свойств находится свойство с именем: Адрес (URL).
В конце URL-адреса содержится строка темы, используемая для открытия файла справки на нужной странице.

Вот пример: тк: @MSITStore: C: \ Program% 20Files \ Sisulizer% 202010 \ Sisulizer.chm :: / OutputFiles.htm

Если URL слишком длинный, чтобы увидеть тему в конце, вы можете выбрать адрес с помощью мыши и прокрутить до конца.

Вот снимок экрана.

enter image description here

1 голос
/ 23 января 2013

Вы также можете использовать следующее, где path - путь к файлу chm:

using System.Windows.Forms;

Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
0 голосов
/ 28 июля 2011

Я не уверен, как программно получать темы из CHM. Но я изменил однострочный код таким образом, и он сработал.

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");
...