george hat geschrieben:Ich möchte jetzt aber gerne die Hilfedatei mit einer kontextabhängigen Seite starten.
Hi George!
Im Visual Basic arbeite ich so:
Code: Alles auswählen
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.
...
...
...
'*******************************************************************************
'Aufrufen
'*******************************************************************************
Call HtmlHelp(0, "sw3.chm", HH_HELP_CONTEXT, 1001)
Wobei die Zahl 1001 in diesem Fall die ID der aufzurufenden Seite ist. Diese ID muss in das Hilfe-Projekt mit einkompiliert werden.
Allerdings würde ich mir diese Arbeit nie wieder antun. Für jede Seite einen Index mit einer Konstante definieren und diese Konstante dann einer Seite zuweisen. Nein, nie wieder.
Sobald ich mehr Zeit finde, werde ich meine Programmhilfe nach HTML umstellen. Und damit ich trotzdem nicht auf das Menü und den Index verzichten muss, werde ich wahrscheinlich *Rest2Web*
http://www.voidspace.org.uk/python/rest2web/ verwenden.
Zum Ansehen der Hilfe könnte ich mir evt. noch *Documancer*
http://documancer.sourceforge.net/ vorstellen. Den muss ich aber erst noch so richtig testen.
Den oben aufgezeigten API-Aufruf musst du irgendwie entweder mit *ctypes* oder mit *pywin32* aufrufen. Dabei kann ich dir allerdings jetzt nicht helfen. Das habe ich noch nie probiert.
Ahh!
So wie es aussieht, ist "HtmlHelp" in *pywin32* integriert. Es dürfte also gar nicht mal so schwierig werden. Suche einfach mal in der *pywin32*-Hilfe nach "HtmlHelp".
mfg
Gerold