如何将 HLP 文件转换为 CHM 文件

Posted

技术标签:

【中文标题】如何将 HLP 文件转换为 CHM 文件【英文标题】:How to convert HLP files into CHM files 【发布时间】:2017-09-22 20:54:38 【问题描述】:

我需要一些帮助,我有一些 .hlp 文件,我想将其转换为 .chm 文件,因为 .hlp 文件无法在 Windows 10 上运行。

我该怎么做?

【问题讨论】:

superuser.com/questions/32452/… 请参阅komeil.com/blog/… ...按照此过程,然后您可以直接在 Windows 10 上打开 .HLP 文件(或更早版本,根据该页面上的其他说明)。 【参考方案1】:

根据您的要求,我看到两个或更多解决方案:

将 WinHelp (HLP) 转换为 htmlHelp (CHM) 或 PDF 在 Windows10 上运行 WinHelp 文件

将 WinHelp (HLP) 转换为 HTMLHelp (CHM):

我网站上的教程提供了step-by-step description 如何在免费软件/共享软件和“低预算”级别上将 WinHelp (HLP) 转换为 HTMLHelp (CHM)。下载部分的转换项目示例包括工作结构和示例文件。

您当然可以使用帮助创作工具 (HAT),如 Help+Manual、HelpScribble 或任何其他 HAT 将现有 WinHelp 项目转换为 HTMLHelp。

在 Windows 10 上运行 WinHelp:

WinHelp (.hlp) 格式自 1990 年代初就已存在,并已被 HTML Help 1.x (.chm) 取代。 Microsoft 强烈建议您在大约十年前离开 WinHelp。但是对于一个测试应用程序,它在我的 Windows10 机器上运行就像一个魅力。

但修复过去的 WinHelp 查看器需要一些繁重的步骤。请注意,我在这里没有提到 *.chm 帮助文件的 HTMLHelp 查看器。

遵循解决方案步骤取决于您的 Windows 10 版本(32 位或 64 位)。要了解您的系统类型(32 位或 64 位),请按住 Windows+R。在出现的运行对话框中输入msinfo32,然后回车。

您知道,尝试在 Microsoft 支持页面上打开帮助文件 (*.hlp) 会导致结果。Error opening Help in Windows-based programs: "Feature not included" or "Help not supported"。

您会找到适用于 Windows 8.1 的下载链接,但您必须以特殊方式安装适用于 Windows 10 的 (Windows8.1-KB917607-x64.msu)。

    以管理员身份启动命令提示符(请注意 - 此处为德语示例)!

    将下载的 .msu 文件解压到一个临时目录

    md msu-extracted

    expand Windows8.1-KB917607-x64.msu /f:* .\msu-extracted

    提取包含的 CAB 文件,其中包含 279 个文件。

    cd msu-extracted

    md cab-extracted

    expand Windows8.1-KB917607-x64.cab /f:* .\cab-extracted

    根据您的语言设置找到匹配的 MUI 文件,例如使用“cs-”、“de-”或“en-”。使用 x86 变体的人需要运行“dir x86*de-*”。

    cd cab-extracted

    导航到您的语言“... de-de ...”的给定路径,例如:

    cd amd64_microsoft-windows-winhstb.resources_31bf3856ad364e35_6.3.9600.20470_de-de_1ab8cd412c1028d0
    

    在这里我们会找到“winhlp32.exe.mui”。现在我们需要替换例如 %SystemRoot%\de-de\winhlp32.exe.mui 和我们的新文件:

    takeown /f "%SystemRoot%\de-de\winhlp32.exe.mui"
    icacls "%SystemRoot%\de-de\winhlp32.exe.mui" /grant "%UserName%":f
    ren %SystemRoot%\de-de\winhlp32.exe.mui winhlp32.exe.mui.w10
    copy winhlp32.exe.mui %SystemRoot%\de-de\winhlp32.exe.mui 
    takeown /f "%SystemRoot%\winhlp32.exe"
    icacls "%SystemRoot%\winhlp32.exe" /grant "%UserName%":f
    ren %SystemRoot%\winhlp32.exe winhlp32.exe.w10
    cd ..
    dir *.exe /s
    

    找到以 amd64 或 x86 开头的正确路径并导航 给它:

    cd "amd64_microsoft-windows-winhstb_31bf3856ad364e35_6.3.9600.20470_none_1a54d9f2f676f6c2"
    copy winhlp32.exe %SystemRoot%\winhlp32.exe 
    

编辑:

您不需要在最后一个 cd 命令步骤中替换 _none_(所有单个步骤都在 2017 年 9 月 1 日和 2018 年 8 月 24 日测试并在 Windows 10 上运行)。

在主要的 Microsoft Windows 更新后重置上述解决方法。

编辑:(从 cmets 复制,感谢 @dxiv)

最后几个步骤的替代方法是将 winHlp32 文件完全复制到其他位置,例如 C:\etc[\de-de],然后在提升的位置重新关联 ftype hlpfile=C:\etc\winHlp32 %1命令提示符。这样可以避免与 sfc 和未来的 windows 更新发生冲突,并且 HLP 在通过关联打开时仍然可以工作(在资源管理器中双击,或在 cmd 提示符下启动 old.hlp)。

【讨论】:

@Cristhopher Mancilla Gonzalez:如前所述,您可以使用工具将 WinHelp (HLP) 转换为 HTMLHelp (CHM)。请参阅上面我的答案中的链接。 “一步一步的描述”是男人的方式,Help+Manual很贵,HelpScribble有FreeTrial而且价格低。但你可能是华纳 - 你需要一些帮助创作的知识。在大多数情况下,您必须反编译 *.hlp 文件才能获得项目 *.hpj 文件。清理完所有内容和目录后,您需要编译一个 CHM。我建议试试 HelpScribble Convert WinHelp @Cristhopher Mancilla Gonzalez:请注意 - 询问工具时使用 Software Recommendations。 @help-info.de Late +1,只会补充最后几个步骤的替代方法是将winHlp32文件完全复制到其他地方,例如C:\etc[\de-de],然后重新关联@987654342 @ 在提升的命令提示符下。这样可以避免与 sfc 和未来的 Windows 更新发生冲突,并且 HLP 在通过关联打开时仍然可以工作(在资源管理器中双击,或在 cmd 提示符下start old.hlp)。 通过软件的集成帮助打开帮助文件时需要第6步和第7步。 @sp00n .mui 文件进入以区域设置命名的子目录,例如en-us 就我而言。这足以运行exe,正如在 Win7 和 Win10 下验证的那样。要通过关联打开帮助文件,您还需要将 .hlp 文件与该 winHlp32 实例关联。【参考方案2】:

各位,经过长时间的搜索,我的结论是:.HLP 文件不能在 Windows 8 和 10 中执行,只能在 Windows 7 及更低版本中执行。 .CHM 文件可以由 Windows 8 和 Windows 10 执行。所以,我必须在 Windows 10 的 Help Development Studio 中创建我的新 .chm 文件才能由它执行。我的旧文件 .HLP 已经过时了。这样做花了很多时间,但我对这种类型的文件了解很多。 最后,感谢您对我的问题的贡献。

【讨论】:

两年多前,我已经在上面推荐过“将 WinHelp (HLP) 转换为 HTMLHelp (CHM)”和“微软强烈建议您在大约十年前离开 WinHelp”。并且对于特殊的测试用例,还有额外的Windows10下使用提示。所以我不明白为什么你的评论现在是答案。我认为这确实是一个评论。 这是解决问题的唯一方法。我没有使用命令提示符编辑这些文件的任何权限,我的公司不允许。所以,我为这个特殊问题做了这个解决方案。【参考方案3】:

您可以使用 Chrome 扩展程序将 HLP 转换为 HTML: > 提议者:https://ehubsoft.herokuapp.com/chmviewer

【讨论】:

【参考方案4】:

先生,您是英雄!我最终使用了HelpScribble 并使用了链接到here 的反编译器。

引用他们的网站:

如果您有一个没有 HPJ 和 RTF 源文件的现有 WinHelp 文件,您可以下载 WinHelp 反编译器以从 HLP 文件重新创建 HPJ 和 RTF 源。将 helpdc21.zip 中的文件解压缩到一个新文件夹中。然后,您可以在命令提示符下轻松反编译任何 .hlp 文件,方法是键入:helpdeco helpfile.hlp 其中 helpfile.hlp 是您要反编译的帮助文件。如果帮助文件包含图像,反编译器将生成 HPJ 和 RTF 文件以及一系列位图文件。使用 HelpScribble 中的 Project|Import Help Project 来导入帮助文件。

这将提取hlp 文件的源文件。

最后,只需在 HelpScribble 中导入生成的 hpj 文件。从那里您可以使用 Make Flat Manual 选项简单地导出到 html 文件。

轰隆隆。完成。

【讨论】:

你说的“英雄”是谁?这是对其他用户帖子的评论吗?

以上是关于如何将 HLP 文件转换为 CHM 文件的主要内容,如果未能解决你的问题,请参考以下文章

Java - 将 doc/docx 文件转换为 chm 文件

如何将PDF文档转换为CHM格式文档?

.chm 文件转换为 pdf文件

如何将pdf合成制作成chm格式?

帮忙找个软件把pdf 格式文件转化成chm格式的 急用 谢谢 !

如何把PDF 变成CHM 格式啊??