如何打包 7zip 解压后的 chm 文件

How to pack-back a chm file that was unpacked by 7zip

根据 7zip 文档,7zip 支持的格式有:

打包/解包:7z、XZ、BZIP2、GZIP、TAR、ZIP 和 WIM

仅解包:AR、ARJ、CAB、CHM、CPIO、CramFS、DMG、EXT、FAT、GPT、HFS、 IHEX、ISO、LZH、LZMA、MBR、MSI、NSIS、NTFS、QCOW2、RAR、RPM、SquashFS、UDF、UEFI、VDI、VHD、VMDK、WIM、XAR 和 Z。

我想问一下,如果我用7zip解压一个chm文件。我怎样才能把它打包回去? 我看到 7zip 不支持这个,那么谁支持呢? 我想获取 7zip 解压缩的文件(从 chm 文件)并重新创建一个 CHM 文件。 这可能吗?

仅当您有一些内部 Microsoft 实用程序可以执行此操作时,因为这是他们的专有格式,或者您使用 information from reverse-engineering the format.

编写自己的格式

如果您只有 CHM 文件,则没有简单的方法可以做到这一点,您需要像@Mark 提到的那样进行逆向工程。

因此您必须反编译 CHM 文件并通过 HTML Help Workshop(Microsoft 多年前创建的免费 CHM 编译器)或其他帮助创作工具再次编译。

Microsoft HTML Help Downloads

如果您真的想开始逆向工程,HTMLHelp command-line 中介绍了反编译的第一步。搜索:使用HH.EXE反编译 CHM 帮助文件的示例

您知道,您可以使用 7Zip 或在 Windows PC 上打开命令提示符 window 并键入以下内容:

hh.exe -decompile <target_directory> <path>\<filename>.chm

唯一具有任何附加功能的反编译器是 KeyTools,因为它可以尝试重建项目 (.hhp) 文件。如果您想重新编译帮助项目,您将需要此文件

需要注意的一件事是 decompile/recompile 进程不是 "round-trip" 进程。帮助作者添加到原始帮助文件中的某些功能在您反编译时无法恢复,因此在您重新编译后这些功能可能不再正常工作。 在上下文相关的帮助区域尤其如此,新版本的文件可能会损坏它。