说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何在vb中调用chm帮助文件?

编辑:说三道四文库 发布时间:2018-05-28 09:54
HTML文档下载 WORD文档下载 PDF文档下载
在工程属性中设置帮助文件名,这样在任何地方F1都会唤出CHM
'API声明
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpszOp As String, ByVal lpszFile As String, ByVal lpszParams As String, ByVal LpszDir As String, ByVal FsShowCmd As Long) As Long
Public Const SW_SHOW = 5

'使用方法,如点击帮助菜单
ShellExecute 0, "Open", App.Path & "\Help.chm", "", "", SW_SHOW 
谢谢,但我如你所说使用第二种方法时,出现编译错误,告诉我声明错误!
两个都是好办法。另加一个:
1。建立帮助类。
2。通过类来调用帮助。
此好处是支持别的驱动事件。如:左右键等。
直接用SHELL函数不行吗
或者用OLE控件也可以啊
设好工程的帮助文件名,需要的地方如下
i = HtmlHelp(Me.hWnd, App.HelpFile & "::/index.htm", HH_DISPLAY_TOPIC, 0)
'有关声明

Public 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
      
Public Const HH_DISPLAY_TOPIC = &H0
Public Const HH_SET_WIN_TYPE = &H4
Public Const HH_GET_WIN_TYPE = &H5
Public Const HH_GET_WIN_HANDLE = &H6
Public Const HH_DISPLAY_TEXT_POPUP = &HE   ' Display string resource ID or
                                           ' text in a pop-up window.
Public Const HH_HELP_CONTEXT = &HF         ' Display mapped numeric value in
                                           ' dwData.
Public Const HH_TP_HELP_CONTEXTMENU = &H10 ' Text pop-up help, similar to
                                           ' WinHelp's HELP_CONTEXTMENU.
Public Const HH_TP_HELP_WM_HELP = &H11     ' text pop-up help, similar to
                                           ' WinHelp's HELP_WM_HELP.
Public Const HH_DISPLAY_SEARCH = &H2
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

要想用public声明,你就把他放到一个模块文件里
On Error Resume Next
    
    Dim AppDir As String
    Dim HelpFile As String
    AppDir = App.Path
    If Right(App.Path, 1) <> "\" Then
        AppDir = AppDir & "\"
    End If
    HelpFile = AppDir & "HelpFile.chm"
    
    Call Shell("hh.exe " & HelpFile, vbMaximizedFocus)

    'HH.exe 是Windows 自己带的一个可执行文件,在windows文件夹下就有,
不用什么API文件,那个多麻烦呀。OK
Dim yourHELP As Long
Dim HelpChmFile As String
HelpChmFile = App.Path & "\" & "flydragon.chm"
yourHELP = ShellExecute(0&, vbNullString, HelpChmFile, vbNullString, vbNullString, vbNormalFocus)
短短几句话就OK了,不用API的!
楼上的,难道ShellExecute不是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

Dim yourHELP As Long
Dim HelpChmFile As String
HelpChmFile = App.Path & "\" & "flydragon.chm"
yourHELP = ShellExecute(0&, vbNullString, HelpChmFile, vbNullString, vbNullString, vbNormalFocus) 
我的妈呀,这些人怎么搞得这么复杂?算你们会一点API?不需要API,很简单的,commondialog中不就有调用help的方法吗?
gz
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘