如何告诉VB6在哪里找到winhlp32.exe
我维护一个大型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,vb6,windows-10,chm,winhelp,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.
有谁能建议如何说服VB6应用程序(编译之前或之后)从应用程序文件夹而不是Windows文件夹中使用winhlp32.exe吗?简短的故事-您可能会收到警告,您知道迁移VB6应用程序是一项繁重的任务,可能无法找到将WinHelp迁移到HTMLHelp的简单方法 官方建议(10年): 忘记WinHelp,它是历史记录并迁移到CHM帮助文件格式。 但是,也许您已经找到了我的答案(在Windows10上搜索Run WinHelp)并阅读了所有进一步的链接:
- Windows Vista/7/8/10不再附带WinHelp运行时(WinHelp32.exe)
- ISV(独立软件供应商)应停止将WinHelp作为可行的帮助系统进行推广
- 如果帮助作者还没有转移到HTMLHelp1.x(.chm),那么他们应该转移到HTMLHelp1.x(.chm)
App.Path获取可执行文件的当前路径,因此只需确保winhlp32.exe文件就在那里。是的,如果是我的代码在按F1键时起作用,但VB6处理F1,我认为这会起作用。(将代码添加到许多表单以捕获F1键不是我想讨论的问题!)我已经成功地在Windows 7和10中实现了这项技术。在帮助文件名之前添加上下文整数也有效。例如:Shell App.Path&“\winhlp32.exe-N123 myhelpfile”请注意,在应用程序文件夹(大小为283648)中有Windows XP版本的winhlp32.exe,而不是更高版本(大小为296960)(几年前我已在Windows 7 PC中安装)是很重要的。较大的版本在%windir%文件夹之外无法工作-它只生成了一个包含“(9009)”的消息框
Shell App.Path & "\winhlp32.exe myhelpfile"