4

我维护了一个大型 VB6 应用程序,我希望能够在 Windows 10 上安装它。它有一个 WinHelp 格式的大型帮助文件。我想将 winhlp32.exe(和 winhlp32.exe.mui)与应用程序一起分发,而不是替换 Windows 10 Windows 文件夹中的 winhlp32.exe 文件。如果我将(旧的)winhlp32.exe 文件放在 Windows 10 的应用程序文件夹中,并将 winhlp32.exe.mui 文件放在名为 en-US 的子文件夹中,则如果我输入命令“winhlp32.exe myhelpfile.hlp”,则帮助文件有效"在应用程序文件夹中。但是,如果我运行应用程序 exe(由 VB6 创建)并按 F1,它将运行 Windows 10 winhlp32.exe 存根,而不是应用程序文件夹中的 winhlp32.exe。

谁能建议如何说服 VB6 应用程序(在编译之前或之后)使用应用程序文件夹中的 winhlp32.exe 而不是 Windows 文件夹?

4

2 回答 2

3

简短的故事 - 您可能会被警告并且您知道迁移您的 VB6 应用程序可能是一项繁重的任务,可能没有找到将 WinHelp 迁移到 HTMLHelp 的简单方法。

官方推荐(10岁):

忘记 WinHelp,它的历史并迁移到 CHM 帮助文件格式。

但是,也许您已经找到了我的答案(在 Windows10 上搜索 Run WinHelp)并阅读所有进一步的链接:

请注意一个名为HHPMod的工具,专门用于迁移上下文相关的 F1 帮助。

我在上面的修复之前和之后尝试了旧 VB6 程序的 WinHelp,它在 Windows 10(版本 1803)上为我工作。

在此处输入图像描述

您可能想尝试的另一种解决方案(取决于您的部署和 IT 环境):

引自本文(感谢 Komeil Bahmanpour):

“请注意,尝试手动替换 Windows 文件夹中的 winhlp32.exe 和 Windows 7 的 Windows\en-US 文件夹中的 winhlp32.exe.mui 的用户,由于所有权和权限问题而面临覆盖限制。”

附加信息:

我可能错了,但我相信(旧的)在线帮助文​​件通常作为 Microsoft Windows 的一部分受版权保护。分发文件通常会违反版权法(正如您在问题中提到的那样)。

AFAIK 开发人员不得分发 WinHlp32.exe 的 Vista 版本或将其包含在他们的安装中。每个想要使用 WinHelp 的个人用户都必须直接从 Microsoft 下载 WinHelp 更新并自行安装。

多年来,应用程序的帮助一直是 .chm。Microsoft 于 1997 年左右发布了工具 HH Workshop (HTMLHelp SDK 1.4)。2006 年 3 月左右,在与 MVP 讨论期间,Microsoft 帮助团队宣布 WinHelp 将被弃用(逐步淘汰)。WinHelp 的架构方式使得 Microsoft 必须从头开始重写它以满足 Windows Vista 代码标准。从那时起,.CHM 一直是我们应用程序帮助的唯一选择。

这是什么意思(请注意我们现在大约十年后!):

  • WinHelp 运行时 (WinHelp32.exe) 不再随 Windows Vista/7/8/10 提供
  • ISV(独立软件供应商)应停止将 WinHelp 宣传为可行的帮助系统。
  • 如果帮助作者还没有这样做,他们应该转到 HTML Help 1.x (.chm)。

HH Workshop 足以编写 .CHM 帮助文件。我正在使用一个具有更多功能(拖放目录/索引编辑等)的工具,称为“FAR HTML”。然后是高端更昂贵的工具(您提到了 RoboHelp),它们具有高级功能,例如“在不同的帮助系统之间转换”。

于 2018-08-24T14:40:19.637 回答
-2

尝试(未经测试,但你应该明白)

 Shell App.Path & "\winhlp32.exe myhelpfile"

App.Path 获取可执行文件的当前路径,因此只需确保您的 winhlp32.exe 文件就在其中。

于 2018-08-24T16:03:06.220 回答