我继承了一个旧的 Visual Basic 项目。除了 Windows 10 上的 .hlp 文件外,它仍然有效。
我发现了如何将 .hlp 文件转换为 .chm。
谁能告诉我如何在VB项目中用HTMLHelp替换WinHelp?
提前致谢
正确答案取决于您的确切要求。
如果您只想启动旧的 *.exe 并显示 *.hlp 文件 (WinHelp),请导航至以下链接(搜索Run WinHelp on Windows10)并阅读其中的所有进一步链接:
请注意一个名为HHPMod的工具,专门用于迁移上下文相关的 F1 帮助。如果在您的旧项目中大量使用 F1 帮助,则可能很难从 WinHelp ( .hlp) 切换到 HTMLHelp ( .chm)。
但是,十年前您已经走上了推荐的正确轨道,并且在今天仍然有效“帮助作者应该转到 HTML Help 1.x (.chm)”。
如果您真的想重新编译您的旧项目,那么下载 Visual Basic 6 示例项目可能会对您有所帮助(请参阅下载部分)。
首先,您需要通过设置来指定要使用的帮助文件,例如:
App.HelpFile = App.Path & "\helpfile.chm"
您会在一个模块中找到所有声明,modHelp.bas
例如
Private Declare Function HtmlHelp Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, ByVal dwData As Long) As Long
Private Declare Function HTMLHelpTopic Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, ByVal dwData As String) As Long
Private Declare Function HtmlHelpSearch Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, dwData As HH_FTS_QUERY) As Long
Private Declare Function HtmlHelpIndex Lib "hhctrl.ocx" Alias "HtmlHelpA" _
(ByVal hwndCaller As Long, ByVal pszFile As String, _
ByVal uCommand As Long, dwData As HH_AKLINK) As Long
有关详细信息,另请参阅为 Visual Basic 6 项目使用模块
我已经成功让安装程序安装 WinHlp32 模块。我不得不在设置中添加一些额外的代码来让模块注册。
到目前为止,我只在几台机器上试过这个......
谢谢你的帮助。