Разделы CHM-справки представляют собой HTML-файлы, упакованные вместе с файлами рисунков и скриптов в единый CHM-файл. В этой статье я расскажу о формате вызова разделов CHM-справки – как открыть CHM-файл на нужном вам разделе. В конце статьи вы найдете ссылки на инструкции для программистов на английском языке по интеграции справки для разных сред разработки, в том числе MS Access.
В материале Контекстная справка в приложениях Windows от 2023 года я уже касался этой темы как фоновой, рассматривая вариант реализации контекстной справки на основе CHM в программном комплексе Help+Manual. Но за последний месяц получил 4 письма с вопросами о том, как вызвать справку из программы, написанной на Delphi, как реализовать контекстную справку на базе HTML Help, а также как привязать CHM-справку к формам MS Access. Поэтому решил перевести данную информацию из фоновой в основную и выделить ее в отдельный материал.
Формат вызова раздела
Согласно документации разработчика HTML Help, синтаксис ссылки для вызова раздела CHM-файла следующий (исключая префикс ms-its и имя окна справки – их можно посмотреть по ссылке выше):
Helpfile.chm::/Topic.htm#anchor
Где:
- Helpfile.chm - файл справки HTML Help;
- Topic.htm - раздел в корне CHM-файла;
- Topic - идентификатор раздела (Topic ID в H&M или Help ID в HelpNDoc);
- anchor - якорь в разделе Topic.htm.
Основные сложности
Основных сложностей, с которыми могут столкнуться разработчики, две:
- структура CHM-файла;
- идентификаторы разделов и имена HTML-файлов.
Структура
Большинство средств разработки справки генерируют стандартные CHM-файлы, в которых HTML-файлы расположены в корне CHM-файла. В этом случае для вызова раздела справки используйте следующий синтаксис:
Helpfile.chm::/Topic.htm#anchor
HTML-файлы могут быть сгруппированы в папки и вложенные папки. В этом случае используйте следующий синтаксис:
Helpfile.chm::/html/overview/Topic.htm#anchor
Где файл раздела Topic.htm находится в папке overview, которая находится в папке html.
Если у вас нет связи с автором CHM-файла, структуру CHM-файла можно посмотреть самостоятельно при помощи бесплатной программы KeyTools от Ральфа Уолдена (скачать можно, например, здесь). Декомпилировать CHM-файл для этого не нужно.

Программа также позволяет уточнить все идентификаторы разделов. Дополнительно, если выделить в структуре HTML-файл, в области справа можно посмотреть контент выделенного раздела.
Идентификаторы
Идентификатор раздела можно посмотреть в проекте (если вы автор) или в свойствах раздела CHM-файла. Для этого необходимо открыть CHM-файл, выбрать в содержании необходимый раздел и в области отображения раздела в контекстном меню выбрать команду Свойства.

Как проверить ссылку
На локальном ПК ссылку можно проверить следующим образом:
Выберите Пуск -> Выполнить и введите:
hh.exe C:\test\HelpFile.chm::/Topic.htm#anchor
Где:
- hh.exe - программа для просмотра справки в формате HTML Help (CHM), файл расположен в C:\Windows\hh.exe;
- C:\test\HelpFile.chm - путь к CHM-файлу;
- Topic.htm - раздел в корне CHM-файла;
- anchor - якорь в разделе Topic.htm.
Вызов CHM из программы
Справку в формате CHM можно вызвать из любого приложения, работающего в ОС Windows. По ссылкам ниже можно посмотреть инструкции для программистов на английском языке для разных сред разработки:
CHM Files and Programming Languages





















