Друзі!
Як зі свого 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