Як створити chm файл

Друзі!
Як зі свого Delphi-програми створювати chm файли?
(На зразок утилитки html2chm)

Може компоненти є готові?

Або лінки на теорію питання?

Ніхто не знає чи що?

Нічого важкого тут немає.

Спочатку динамічно в тимчасовому каталозі створюється весь HTML контент, потім так само формується файл проекту * .hhp і необхідні файли * .h, а потім програмно запускається компілятор hhc.exe з необхідними параметрами командного рядка.

Необхідно, що б в шляхах був доступний також HHA.dll

Робиться так, а не безпосередньо, тому що внутрішня структура .chm не документована, а доступних неофіційних достовірних повних розшифровок не існує.

Зазначені файли hhc.exe і hha.dll входять в вільно розповсюджуваний M $ пакет для компіляції файлів * .chm (HtmlHelp.exe)

чудово
вірю
Але тільки чому html2chm без цих файлів встановлюється?
напевно хлопець в ms працює (інсайдер)

Встановлюватися-то вона може і встановлюється, а ось чи працює вона без цих файлів - ось у чому, власне гря, питання.

Чесно кажучи дещо про внутрішній формат все-таки відомо - це компаундний файл, в секціях якого і зберігається HTML контент, який зазвичай стиснутий CAB (але може бути і не стиснутий), а також зміст, настройки вікна, точки виклику контекстної допомоги і т . Д.

Добровольці накопали досить багато:

Але IMHO використовувати офіційний компілятор hha.dll простіше і надійніше, що, до речі, абсолютна більшість утиліт і робить.

Ось ще (спеціально для бажаючих винаходити вдосконалені велосипеди) - OpenSource проекти зі створення альтернативних засобів роботи з CHM:

chm це той же compound файл

і створювати його можна також через інтерфейс IStorage
просто треба створювати кілька спеціальних потоків в корені (опис вікон, дерева, меню, пошуку і т.д)
стискається він недокументованим методом Compact

Схожі статті