如何告诉VB6在哪里找到winhlp32.exe

时间:2018-08-23 23:14:31

标签: vb6 windows-10 chm winhelp

我维护一个大型的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应用程序(在编译之前或之后)使用应用程序文件夹而不是Windows文件夹中的winhlp32.exe吗?

2 个答案:

答案 0 :(得分:3)

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

官方推荐(10岁):

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

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

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

在从上方进行修复之前和之后,我都尝试了旧VB6程序的WinHelp,并且它在Windows 10(版本1803)上对我而言有效。

enter image description here

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

本文引述(感谢Komeil Bahmanpour):

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

其他信息:

我可能是错的,但是我相信(旧的)联机帮助文件也通常是Microsoft Windows的一部分。分发文件通常会违反版权法(正如您在问题中提到的那样)。

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

.chm应用程序帮助已经很多年了。 Microsoft在1997年左右发布了工具HH Workshop(HTMLHelp SDK 1.4)。大约在2006年3月与MVP进行讨论时,Microsoft Help团队宣布将淘汰WinHelp(逐步淘汰)。 WinHelp的设计方式是,Microsoft必须完全重写它才能符合Windows Vista代码标准。从那时起,.CHM一直是我们提供应用程序帮助的唯一选择。

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

  • WinHelp运行时(WinHelp32.exe)不再随Windows Vista / 7/8/10一起提供
  • ISV(独立软件供应商)应停止将WinHelp推广为可行的帮助系统。
  • 如果尚未创建HTML帮助1.x(.chm),帮助作者应该移至该目录。

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

答案 1 :(得分:-2)

尝试(未经测试,但您应该了解一下)

$ lesspipe
export LESSOPEN="| /usr/bin/lesspipe %s";
export LESSCLOSE="/usr/bin/lesspipe %s %s";

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

相关问题