Search code examples
windowschm

How to start help via hh.exe at specific index


I'm opening windows' help file via

hh.exe "C:\MyHelp.chm"

and everything works fine, but I'd additionally want to start at some Index e.g Test abc

is it somehow possible to do it? e.g some command-line parameters? I only managed to find those:

https://learn.microsoft.com/en-us/previous-versions/windows/desktop/htmlhelp/using-command-line-switches


Solution

  • The answer is NO for a command-line call.

    You know - hh.exe is distributed with HTML Help so you can rely on it being present. It lives in the Windows folder and has a limited number of command-line options. HH.EXE is associated with .CHM files. So double-click a *.CHM file and Windows will open the file using HH.EXE. Its a very small file, it mostly passes the help filename onto a HH API library. HH.EXE is not single instance, if you open a CHM file three times using HH.EXE, then three help windows will appear.

    Please note the options you have. See below and also: HTMLHelp command-line.

    Example of opening a help topic using help ID = 12030

    ID is a number that you've defined in the [MAP] section of your project (*.hhp) file and mapped to the required topic in the [ALIAS] section.

    C:\>HH.EXE -mapid 12030 ms-its:C:/xTemp/XMLconvert.chm
    

    Example of opening a help topic using a topic path

    C:\>HH.EXE ms-its:C:/xTemp/XMLconvert.chm::/Bekannte_Fehler/err/xml3.htm
    C:\>HH.EXE mk:@MSITStore:C:/xTemp/XMLconvert.chm::/Bekannte_Fehler/errxml3.htm
    
    C:\>HH.EXE ms-its:C:/xTemp/XMLconvert.chm::/Bekannte_Fehler/err/xml3.htm#anchor
    

    The mk:@MSITStore protocol works with IE3 and above while ms-its works with IE4 and above. A shorter version of "ms-its" is to just use "its". Actually, the later versions of HH don't even require the protocol prefix.

    By Software this can be done by e.g. vb.net:

    Way to open Index tab in chm file