TopPicLogo TopPicText

Фаилы справки - Подключаем к приложению справку в формате .CHM

По материалам: http://www.interface.ru/home.asp?artId=7534

... Ну все, будем считать, что справка у нас написана, Help Contex Numbers расставлены, и файл .CHM успешно скомпилирован.
- создадим в программе модуль mdlHelp и вставим в него этот код:

'--------------------------------------------------------------------
' Module    : modHelp
' Author    : Jamie Czernik +
' Purpose   : Помощь - Подключаем к приложению справку в формате .CHM
'--------------------------------------------------------------------
Option Compare Database
Option Explicit

Private Const HH_DISPLAY_TOPIC = &H0
Private Const HH_HELP_CONTEXT = &HF

Private 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

Private Function LaunchHTMLHelp(HelpFile As String, Optional WindowHandle As Long, _
Optional Topic As Long) As Boolean
Dim lngReturn As Long
On Error Resume Next
    
    If VBA.Len(VBA.Dir$(HelpFile)) > 0 Then
        If Topic = 0 Then
            lngReturn = HtmlHelp(WindowHandle, HelpFile, HH_DISPLAY_TOPIC, 0)
        Else
            lngReturn = HtmlHelp(WindowHandle, HelpFile, HH_HELP_CONTEXT, Topic)
        End If
        LaunchHTMLHelp = VBA.CBool(lngReturn)
    End If

End Function

Public Function getHelp(intTopic As Long) As Boolean
Dim strAppPath As String

On Error Resume Next
    'Задаём путь к HELP файлу
    strAppPath = Application.CurrentProject.Path & "\CMS Help.chm"
    getHelp = LaunchHTMLHelp(strAppPath, 0, intTopic)

End Function

в принципе это все, что нужно для нормальной работы со справкой в формате .CHM ;)
вызываем из любого места программы так:

getHelp (100)
' где 100 и есть то самый Help Contex Numbers, указанный при подготовке нужной страницы
' справка откроется и автоматически выберется страница с Help Contex Numbers равным 100

если хотим просто показать файл справки с начальной страницы:

getHelp (0)

Так как это функция, то вызывать ее необязательно из программного кода модуля формы - достаточно просто написать в событии подходящего контрола "Нажатие кнопки"  =getHelp(100)

Назад ToTop
L.E. 14.05.2017
Рейтинг@Mail.ru