Блог технического писателя Ильи Жукова

5 способов декомпиляции CHM-файлов

CHM-файл не редактируется напрямую, это архив LZX. Часто возникают ситуации, когда исходного файла проекта нет, а CHM нужно обновить или перевести на иностранный язык. В этой статье я расскажу о пяти основных способах декомпиляции CHM-файлов, а также перечислю, какая информация теряется во время декомпиляции.

 

Для чего нужна декомпиляция

Декомпиляция CHM-файла может потребоваться, чтобы:

  1. отредактировать и обновить справку;
  2. перевести документацию на иностранный язык;
  3. преобразовать документацию в другие форматы;
  4. получить доступ к файлам из архива: рисункам, скриптам и т.д.
  5. посмотреть, как устроен 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

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

По умолчанию файл CHM будет распакован в одноименную папку (название папки можно изменить).

 

архиватор 7zip

Наверх к мини-содержанию

 

 

3. Программа KeyTools

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

 

программа KeyTools

Наверх к мини-содержанию

 

 

4. Программа FAR HTML

  1. Запустите FAR HTML.
  2. Выберите Authoring \ HH Utilities.

 

программа FAR HTML

 

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

 

окно HH Utilities

 

  1. Нажмите ОК, чтобы закрыть окно с сообщением о распаковке файлов.

Наверх к мини-содержанию

 

 

5. Программа HTML Help Wordshop

Подробную пошаговую инструкцию по декомпиляции CHM-файлов смотрите в статье Декомпиляция CHM-файла.

Наверх к мини-содержанию

 

Что теряется во время декомпиляции

  • файлы alias.h и map.h из разделов [ALIAS] и [MAP] — данные о контекстных вызовах справки;
  • ключевые слова для макросов Alink и Klink (ключевые слова, добавленные автором в HTML-код разделов в тег OBJECT, не в файл .hhk; удаляются во время сборки исходного CHM-файла);
  • стоп-слова для полнотекстового поиска (файл .stp).

 

свойства прокта в HTML Help Wordshop

 

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

 

 

Добавить комментарий

Все о справке и документации для пользователей!

Следить за новыми статьями: