我通過html help workshop編譯好幫助文件以后,通過VB應用程序無法成功的調用:
dim retVal
retVal=shell("D:\AAA\BBB\Temp.chm",1)
請各位指點!!!!
dim retVal
retVal=shell("D:\AAA\BBB\Temp.chm",1)
請各位指點!!!!
解决方案 »
- 新手请教新手问题,请大虾不吝赐教!谢谢!(计算器问题)
- 急救!! 关于vb程序在任务栏的问题
- 如何合并多个文件,并从中提取任意一个文件?
- sql语句用太多or怎么办?or上千个都有可能。要是直接这么用的话,会很慢或死机!请问可以用什么办法解决?
- 各位高手,想问一下关于随机文件的问题
- access表XX用向导建立了Form_xx数据窗体,当表XX改名后,如何更改窗体使它与改名与的表相连改不用改变其它
- image控件--如何使鼠标在上面时,鼠标指针变成手的形状,离开时还原?(半天结贴!)
- 一个供ASP页面调用的DLL一般情况下多大比较合适,有没有评测的标准?
- 如何对已有文件进行复制,删除操作?
- 帮帮忙啦!!!!!!!
- 关于“帐套”的问题!!!
- 如何判定一个控件有没有得到焦点
方法一 使用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的说明资料)。