发新话题
打印

[转载]在VB中调用CHM帮助的几种方法

[转载]在VB中调用CHM帮助的几种方法

信息来源:电脑技巧精彩文章100篇

一个应用程序不论编制得如何完美,在很多情况下用户还是会对如何使用它提出问题。 Visual Basic 提供了对两种不同帮助系统的支持:传统的 Windows 帮助系统 (WinHelp)和新的 HTML 帮助(CHM帮助)。当我们制作好帮助文件后,就需要在程序的适当位置编写代码进行调用,本文将讨论几种在程序中调用CHM帮助文件的方法。
方法一 使用F1键:
这种方法最简单,只需如下代码即可:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm" '调用与主程序同目录下的help.chm帮助文件,按F1键调用
End Sub

方法二 使用SendKeys方法:
Private Sub Form_Load()
App.HelpFile = app.path & "\help.chm"
End Sub
private Sub CmdHelp_Click()
SendKeys "{F1}" '发送击键到活动窗口
End Sub

方法三 使用Shell函数:
private Sub CmdHelp_Click()
Shell "hh.exe help.chm", vbNormalFocus 'help.chm为指定的帮助文件,可包含路径。
End Sub

方法四 使用HtmlHelp函数:
先声明如下API:
Option Explicit
Private Declare Function HtmlHelpA Lib "hhctrl.ocx" (ByVal hwndCaller As Long, ByVal pszFile As String, ByVal uCommand As Long, ByVal dwData As Long) As Long
'hwndCaller指定调用者的窗口,pszFile指定要调用的文件,uCommand是发送给 HtmlHelp的命令,dwData是uCommand的参数。
然后在过程中调用:
private Sub CmdHelp_Click()
dim i as string
i = app.path & "\help.chm" '用变量i记录与主程序同目录下的help.chm帮助文件
HtmlHelpA Form1.hWnd, i, 0, 0
End Sub

方法五 使用ShellExecute函数:
先声明如下API:
Option Explicit
'声明API函数用于异步打开一个文档
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private Const SW_SHOWNORMAL = 1
然后在过程中调用:
private Sub CmdHelp_Click()
dim a as long
Dim b As String
b = App.Path & "\help.chm" '用变量b记录与主程序同目录下的help.chm帮助文件
a = ShellExecute (0, "open", b, "", "", SW_SHOWNORMAL)
End Sub
以上五种方法各有优缺点,从代码的简单上讲,建议使用第二种方法。从功能上讲,建议使用第五种方法,因其不只用于打开CHM帮助文件,还可用同样的格式打开、打印或查找一个文件或文档(参见该API的说明资料)。
曾几何时,有人对我说:装B遭雷劈。我说:去你妈的。于是,这个人又对我说:如果再说脏话,上帝会惩罚你的。我说:我操上帝。结论:彪悍的人生不需要上帝。

TOP

HtmlHelpA这个API函数,偶在VB6.0下的API阅览器中怎么找不到的了?怪怪!有这个函数吗?偶去网上查查。
青铜的钝剑:我是没有眼泪的人 为了保护自己 今后我可以对任何人残忍 巫师的披风:我不怕死 因为我一直对它充满着无尽的好奇 想亲眼看一下死之后会是什么←目前状态 耀眼的强光:我最擅长从零开始创造世界 所以从来不怕失败 它最多也就让我一无所有

TOP

在VB中调用HTMLHELP文件

原创作者:闫东
信息来源:计算机世界

HTML帮助文件是WINDOWS基本帮助系统的一种新标准,在WINDOWS 98中我们到处都可以看到它的身影。作为一种时尚,我们的应用软件自然也不能够落后,于是我就着手将原来的帮助文件重新编译为HTML帮助文件。从VISUAL STUDIO 98中可以找到 HTML HELP WORKSHOP,使用方法不是太难,由于我有自己的个人网站,制作HTML 文件自然也不在话下。很快,一个帮助文件就完成了(MY.CHM)。可是,如何在VB中调用它呢?
---- 试试原来的API 函数WINHELP,提示出错信息“MY.CHM 文件不是WINDOWS帮助文件,或该文件已经损坏”。显然,WINHELP函数不认识这种新的帮助类型。查看HTML HELP WORKSHOP的帮助文件,它提示可以使用API函数HTMLHELP来调用HTML帮助文件,但只是它是按C语言的格式声明的,如下:

HWND HtmlHelp(HWND hwndCaller, LPCSTR pszFile, UINT uCommand, DWORD dwData);

---- 按照说明,参数hwndCaller是窗口的句柄,pszFile是HTML帮助文件的路径和名称, uCommand表明执行的操作,dwData是uCommand参数所必需的值。它包含在哪个文件中,如何将它转为VB的格式呢?仔细对帮助文件进行研究,帮助文件中提到:HTMLHELP函数被包含在hhctrl.ocx文件中。于是就得到了HTMLHELP函数在VB中的声明:
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

---- 现在回到VB中,谈谈实际的应用。首先当然是要在工程中加入上面的声明,然后编辑工程的菜单,在“帮助”菜单的CLICK方法中加入以下的代码:
   htmlhelp HWND,“MY.CHM”,0,0

---- 运行工程后,选择“帮助”菜单就可以显示HTML帮助文件了。
青铜的钝剑:我是没有眼泪的人 为了保护自己 今后我可以对任何人残忍 巫师的披风:我不怕死 因为我一直对它充满着无尽的好奇 想亲眼看一下死之后会是什么←目前状态 耀眼的强光:我最擅长从零开始创造世界 所以从来不怕失败 它最多也就让我一无所有

TOP

楼主啊,有否将程序和chm捆绑在一起的,在打开程序时,可以自动调用chm帮助。我个人觉得这个方法不错。
像winntautoattack在运行后会自动释放出radmin的这种功能,还是直接用捆绑工具捆绑??
本人纯属虚构,如有雷同,纯属巧合……

TOP

调用API中的ShellExecute()函数, 我经常这样做, 无论是CHM格式或HTML格式, 都无所谓
我的ID是:3721

TOP

发新话题