CHM-файл не редактируется напрямую, это архив LZX. Часто возникают ситуации, когда исходного файла проекта нет, а CHM нужно обновить или перевести на иностранный язык. В этой статье я расскажу о пяти основных способах декомпиляции CHM-файлов, а также перечислю, какая информация теряется во время декомпиляции.
Для чего нужна декомпиляция
Декомпиляция CHM-файла может потребоваться, чтобы:
- отредактировать и обновить справку;
- перевести документацию на иностранный язык;
- преобразовать документацию в другие форматы;
- получить доступ к файлам из архива: рисункам, скриптам и т.д.
- посмотреть, как устроен CHM-файл (например, чтобы сделать такой же дизайн).
Пункты 1-3 подразумевают последующую сборку нового CHM-файла. Для этого потребуется создать или восстановить проект (файл .hhp). Несмотря на то, что формат HTML Help предусматривает возможность интеграции файла .hhp в CHM-файл, в раздел [FILES], исходный файл проекта в CHM, как правило, не включается. Подробное описание создания проекта смотрите в статье Создание и настройка проекта в HTML Help Workshop.
Пункты 4 и 5 подразумевают простое извлечение файлов. Поэтому способы декомпиляции перечислю по принципу «от простого к сложному».
Способы декомпиляции
CHM-файл можно декомпилировать при помощи следующих средств:
Какой способ мне подходит
1-й способ идеально подойдет вам, если нужно просто извлечь файлы из CHM, и вы не хотите устанавливать какой-либо дополнительный софт. Если у вас есть архиватор 7Zip, воспользуйтесь 2-м способом. Его основной минус: 7Zip также распакует все служебные файлы и папки из файла CHM. Для редактирования и сборки нового CHM-файла они не пригодятся.
3-й способ — использовать бесплатную программу KeyTools. Это единственное средство, позволяющее автоматически восстановить файл проекта .hhp. Путь к файлу с содержанием .hhc, а также путь к файлу с ключевыми словами .hhk все равно нужно будет указать вручную. Минус данного способа: KeyTools не позволяет собрать новый CHM-файл из исходных файлов — только пересобрать готовый CHM-файл, оптимизировав его размер.
4-й способ – использовать бесплатный набор средств FAR HTML. Основной минус данного способа: неочевидный пользовательский интерфейс в стиле Windows XP на английском языке + отсутствие документации. Основной плюс: широкий функционал и отсутствие глюков родного средства от Microsoft. Чтобы использовать FAR HTML, нужно быть глубоко «в теме». Для работы FAR HTML требуется программа HTML Help Workshop.
5-й способ: использовать бесплатную программу HTML Help Workshop от Microsoft.
4 и 5 способы подойдут, если нужно немного подправить содержимое.
Чтобы полноценно обновить документацию и собрать новый CHM-файл, рекомендуется импортировать CHM в визуальный редактор: HelpNDoc (бесплатный) или Help+Manual (платный). Подробную инструкцию о том, как импортировать данные из CHM-файла в новый проект Help and Manual, смотрите в статье Импорт CHM в Help and Manual.
1. Командная строка
В Windows по умолчанию есть средство просмотра и распаковки CHM-файлов — hh.exe. Запустите командную строку (Win+R -> cmd) и введите:
hh.exe –decompile <целевая_папка> <путь_к_файлу>\<имя_файла>.chm
Обратите внимание: путь к файлу и имя файла не должны содержать пробелов (с открытием CHM-файлов работает, с декомпиляцией – нет).

2. Архиватор 7Zip
- Запустите 7Zip File Manager.
- Найдите и выделите файл CHM, который нужно распаковать.
- На панели инструментов щелкните Извлечь, либо выберите Файл \ Распаковать.
- В окне Извлечь нажмите ОК.
По умолчанию файл CHM будет распакован в одноименную папку (название папки можно изменить).

3. Программа KeyTools
- Запустите KeyTools (Пуск \ Все программы \ HTML Help Workshop).
- Щелкните Decompile.
- Выберите CHM-файл и папку, в которую необходимо распаковать его содержимое.
- Чтобы восстановить файл проекта (.hhp), пометьте флажок Create a project file (if there isn’t one in the CHM/ITS file).
- Нажмите ОК.
- Закройте окно Results (в нем отображается информация о результатах распаковки). Нажмите Close.

4. Программа FAR HTML
- Запустите FAR HTML.
- Выберите Authoring \ HH Utilities.

- Щелкните File \ Open, найдите и выберите CHM-файл, который нужно декомпилировать. На вкладке File Contents отобразится содержимое CHM-файла.
- В меню выберите Decompile \ Extract all и выберите папку, в которую необходимо распаковать файл.

- Нажмите ОК, чтобы закрыть окно с сообщением о распаковке файлов.
5. Программа HTML Help Wordshop
Подробную пошаговую инструкцию по декомпиляции CHM-файлов смотрите в статье Декомпиляция CHM-файла.
Что теряется во время декомпиляции
- файлы alias.h и map.h из разделов [ALIAS] и [MAP] — данные о контекстных вызовах справки;
- ключевые слова для макросов Alink и Klink (ключевые слова, добавленные автором в HTML-код разделов в тег OBJECT, не в файл .hhk; удаляются во время сборки исходного CHM-файла);
- стоп-слова для полнотекстового поиска (файл .stp).

Дополнительную информацию о ключевых словах смотрите в статьях:





















