如何用VB调用帮助文件(*.chm)?
解决方案 »
- vb6 使用shell函数问题
- 原题就是用VB编一个在电脑屏幕上每隔5秒钟显示一行字,这一行字每次得显示一秒钟
- 调用fso相关参数时出现要求对象的错误
- winsock 聊天程序,打开的程序只能给最后一个发送信息?
- 百钱买百鸡问题?? (新手上路,第一次来请教问题。希望各位高手多多指教,谢谢各位了.)
- 请问VB中有没有正则表达式
- 问一个嵌入文档的问题
- 请问vb里有没有像delpli的DBNavigator那样类似的控件或类可用?
- 看你算不算VB高手,在回调函数EnumMetafileProc中怎样得到指针(有源程)
- VB6中为何会有乱码
- DHTML Edit Control 中 我要插入一个对象,请进来看看,分不是问题。
- 报表数据重复
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【别名】
ShellExecuteA【说明】
查找与指定文件关联在一起的程序的文件名 【返回值】
Long,非零表示成功,零表示失败。会设置GetLastError 【参数表】
hwnd ----------- Long,指定一个窗口的句柄,有时候,windows程序有必要在创建自己的主窗口前显示一个消息框 lpOperation ---- String,指定字串“open”来打开lpFlie文档,或指定“Print”来打印它 lpFile --------- String,想用关联程序打印或打开一个程序名或文件名 lpParameters --- String,如lpszFlie是可执行文件,则这个字串包含传递给执行程序的参数 lpDirectory ---- String,想使用的完整路径 nShowCmd ------- Long,定义了如何显示启动程序的常数值。参考ShowWindow函数的nCmdShow参数
在VB中调用CHM 帮助的几种方法一个应用程序不论编制得如何完美,在很多情况下用户还是会对如何使用它提出问题。
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的说明资料)。