如何将 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 文件