怎么调用.chm格式的帮助?在线等待!

火猴 2003-05-08 03:25:32
vb怎么调用.chm格式的帮助呀,解决就给分!
...全文
23 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bydisplay 2003-05-08
  • 打赏
  • 举报
回复
同意lihonggen0
wingsk_cn 2003-05-08
  • 打赏
  • 举报
回复
App.HelpFile = App.path & "\help\xxx.chm"
按“F1”键可以调出 CHM文件来。
ityaa 2003-05-08
  • 打赏
  • 举报
回复
shellexecute应该可以
lihonggen0 2003-05-08
  • 打赏
  • 举报
回复
在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的说明资料)。






lilaclone 2003-05-08
  • 打赏
  • 举报
回复
转贴
lilaclone 2003-05-08
  • 打赏
  • 举报
回复
如何调用chm格式的帮助文件



BFG10K:

HtmlHelp函数VB声明如下(API浏览器中没有,我自己照VC的声明改的):

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的参数。

这个函数位于systemhhctrl.ocx中,你安装了IE4以上版本浏览器就应该有

调用举例: HtmlHelpA Form1.hWnd, "C:WINDOWSHELPCALC.CHM", 0, 0 这个是最简单的例子,uCommand和dwData的组合能产生许多非常复杂的功能 具体情况可查找MSDN:HTMLHelp API Reference主题

函数的C语言原型和所用到的结构和常量定义参见HTML Help Workshopincludehtmlhelp.h 当然你必须先安装了Html Help Workshop

hhctrl.ocx文件虽然后缀是OCX却不是控件,而是一个标准的DLL

林夕:

我有点不明白,VB中好象可以直接调用*.chm嘛,如下例,有什么不妥吗?请各位大虾 指正。

Private Sub Form_Load()
App.HelpFile = "c:aa.chm" '如不指明路径,默认为Windows目录下的Help
Me.HelpContextID = 10001
End Sub Private

Sub Command1_Click()
SendKeys "{F1}" '按F1键,系统自动调用帮助
End Sub

hmg:

我用一个小程序试验了一下

form_load()
app.helpfile="c:1.chm" '文件名是1.chm
end sub

......._click()
cd1.helpfile="c:1.hlp" 'cd1是公用对话框,我故意写成1.hlp
cd1.helpcommand=&h3
cd1.showhelp
end
以上程序居然能成功,莫名其妙 可是在我的大程序里,就不那末顺利,奇怪?

一个偶然的机会我发现 windows目录下的hh.exe可以调用chm的帮助,因此我想到可以用shell语句, .........
shell "hh.exe 1.chm,.......
..........

hh.exe可以拷到任一目录下执行.
火猴 2003-05-08
  • 打赏
  • 举报
回复
不对呀,他说,无效的过程或参数呀
饮水需思源 2003-05-08
  • 打赏
  • 举报
回复
Shell "c:\windows\system\hh.exe " & App.Path & "\test.chm", vbMaximizedFocus

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧