Файл в формате CHM представляет собой скомпилированный HTML. В него могут входить HTML-страницы, рисунки, таблицы стилей, скрипты и другие файлы. Подробное описание состава CHM смотрите в материале Формат HTML Help. Результирующий файл в формате CHM не редактируется. Отредактировать можно только файлы, входящие в его состав. Извлечь файлы или декомпилировать CHM можно при помощи бесплатной программы HTML Help Workshop.
Чтобы декомпилировать выбранный для примера файл api.chm:
- На локальном диске, например на диске С, создайте папку для работы test и в ней подпапку decompiled.
- Скопируйте файл chm в папку test.
- Запустите HTML Help Workshop.
- Выберите File / Decompile.
- В окне Decompile .CHM file: нажмите на кнопку Browse справа от поля Destination folder и выберите папку decompiled.
- В поле Compiled help file: аналогичным образом выберите файл chm.
- Нажмите на кнопку ОК. На экран будет выведено сообщение о том, что 64 файла извлечено из файла chm.
Это именно те файлы, которые мы будем редактировать. Рассмотрим их подробнее:
- CSS-файлы содержат таблицы стилей, определяющих внешний вид контента справки;
- Рисунки в формате GIF — это скриншоты и другие рисунки, использованные в CHM-файле;
- HTM-файлы соответствуют страницам разделов справки содержат текст, ссылки на рисунки, скрипты и т.д.
- файл api.hhc содержит оглавление справки;
- файл api.hhk содержит ключевые слова.
- Откройте в Проводнике папку C:\test\decompiled и найдите в ней .htm-файл, который соответствует разделу справки, открываемому по умолчанию при запуске chm. Это файл ov_main.htm.
На этом декомпиляция CHM-файла завершена. Далее необходимо научиться собирать новый CHM-файл с функционалом, аналогичным оригиналу. Дело в том, что во время редактирования нужно будет периодически собирать CHM, чтобы в случае возникновения ошибок их было проще и быстрее найти. О том, как собрать новый CHM из полученных файлов, речь пойдет в следующем материале Создание и настройка проекта в HTML Help Workshop.
Комментарии
Возможно, стоит добавить, что после декомпиляции и повторной сборки chm-файла теряется информация о контекстных вызовах справки. То есть, если chm-файл был частью какого-либо приложения и при работе в этом приложении по F1 открывались определенные страницы справки, то после процедуры редактирования справка будет везде открываться на первой странице (при условии, конечно, что ее назвали прежним именем и положили в прежнее место).
Или я не права и как-то можно при декомпиляции получить сведения, содержавшиеся в разделе MAP?
Я знала, что chm можно открыть архиватором, но не знала, что это за служебные файлы, начинающиеся с решетки. Правда, мой #IVB нечитаемый получился((
Объясните, пожалуйста, непонятную для меня вещь. Речь идет о chm-файлах обычной справки программ. Если декомпилировать chm файл, получим: несколько папок (одна из них lib с изображениями), ряд файлов html, ряд изображений.
Проблема в следующем:
Справки прекрасно открываются на Windows 7 Enterprise x32, Internet Explorer 8, а вот на Windows 7 Enterprise x64, Internet Explorer 11 справки открываются, но те изображения, которые находятся после html файлов, не отображаются - вместо них квадратик с крестиком (или что-то в этом роде). Причем все изображения, находящиеся в папке lib отображаются без проблем.
Спасибо.
PS Объясните, пожалуйста, попроще – я в этом почти полный НОЛЬ. Если не затруднит – ответ отправьте на b-bonsaiukr.net.