Вопрос

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

Я пробовал использовать

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

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

enter image description here

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

using System.Windows.Forms;

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

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

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top