Forum zur Thematik Windows Hilfen und Hilfesysteme

Von .hlp nach .chm

Jörg Ertelt ⌂ @, Dienstag, 10. Januar 2006, 12:32 (vor 4487 Tagen)

Hallo Thomas,

Ich habe ein Problem: http://www.robo-forum.de/cgi-bin/ultimatebb.cgi>ubb=get_topic;f=1;t=000243

Hast Du eine Idee>

Danke.


Viele Grüße
Jörg

Von .hlp nach .chm

Thomas Schulz ⌂ @, Castrop-Rauxel, Dienstag, 10. Januar 2006, 22:50 (vor 4487 Tagen) @ Jörg Ertelt

Hallo Jörg,

ich erlaube mir mal die Frage gesamt zu posten, vielleicht hilfts ja jemand anderem weiter.

Ausgangspunkt:

Es wurden Word-Dokumente (.rtf) erstellt. Für jeden Topic wurde eine Topic-ID hinterlegt. Dabei handelt es sich um Strings, z.B. #dasistdashausvomnikolaus

Über einen String (=Topic-ID) wird der zugeordnete Topics aus einer C/C++ Applikation kontextsensitiv aufgerufen. Die Hilfe ist eine WinHelp-Hilfe.

So weit, so gut.

Nun soll eine .chm erzeugt werden. Die .chm-API erlaubt aber nicht das kontextsensitiven Aufrufen von Topics über Strings (siehe oben). Über die .chm-API kann ein Topic über dessen Dateinamen oder über eine Nummer (Map-Nr) angesprochen werden. Bei Wege sind nicht möglich, weil die Applikation nicht angefasst werden soll - sprich: Es soll weiter mit den Strings gearbeitet werden.

Frage: Hat jemand eine Idee, einen Anschubser, eine Anregung oder gar eine Lösung die es ermöglicht, dass Topics weiterhin kontestsensitiv über Strings aufgerufen werden können und das alles mit eine .chm>

Eine Möglichkeit des direkten Aufrufs sehe ich leider nicht, zumal der Aufruf aus der Applikation heraus wahrscheinlich mittels WinHelp API erfolgt. Dann hast du ohne Änderung der Applikation gar keine Chance.
Es gibt jedoch eine Möglichkeit, die allerdings nicht so ganz elegant ist.
Du belässt die HLP Datei mit allen Seiten (Seiten können ohne Inhalt sein) und den TopicId's.
Zusätzlich zu den TopicId's lässt du beim Aufruf der einzelnen Seiten jeweils zwei Makros per ! Fußnote ausführen:
[code]ExecFile(hh.exe, name.chm::/Pfad/name.htm);Exit()[/code]
Der String aus der Applikation ruft wie bisher kontextsensitiv die Seite in der HLP auf. Von dort wird wiederun die korrekte Seite innherhalb der CHM aufgerufen und die HLP wird geschlossen.

Ich werde diese Antwort auch bei dir im Forum posten.

--
Viele Grüße
Thomas Schulz (Administrator)
______________
[image]

Von .hlp nach .chm

Jörg Ertelt, Dienstag, 10. Januar 2006, 23:39 (vor 4487 Tagen) @ Thomas Schulz

Hallo Thomas,

Herzlichen Dank für das schnelle Feedback.

Viele Grüße
Jörg

» Hallo Jörg,
»
» ich erlaube mir mal die Frage gesamt zu posten, vielleicht hilfts ja
» jemand anderem weiter.
»
» Ausgangspunkt:
»
» Es wurden Word-Dokumente (.rtf) erstellt. Für jeden Topic wurde eine
» Topic-ID hinterlegt. Dabei handelt es sich um Strings, z.B.
» #dasistdashausvomnikolaus
»
» Über einen String (=Topic-ID) wird der zugeordnete Topics aus einer C/C++
» Applikation kontextsensitiv aufgerufen. Die Hilfe ist eine WinHelp-Hilfe.
»
» So weit, so gut.
»
» Nun soll eine .chm erzeugt werden. Die .chm-API erlaubt aber nicht das
» kontextsensitiven Aufrufen von Topics über Strings (siehe oben). Über die
» .chm-API kann ein Topic über dessen Dateinamen oder über eine Nummer
» (Map-Nr) angesprochen werden. Bei Wege sind nicht möglich, weil die
» Applikation nicht angefasst werden soll - sprich: Es soll weiter mit den
» Strings gearbeitet werden.
»
» Frage: Hat jemand eine Idee, einen Anschubser, eine Anregung oder gar eine
» Lösung die es ermöglicht, dass Topics weiterhin kontestsensitiv über
» Strings aufgerufen werden können und das alles mit eine .chm>

»
» Eine Möglichkeit des direkten Aufrufs sehe ich leider nicht, zumal der
» Aufruf aus der Applikation heraus wahrscheinlich mittels WinHelp API
» erfolgt. Dann hast du ohne Änderung der Applikation gar keine Chance.
» Es gibt jedoch eine Möglichkeit, die allerdings nicht so ganz elegant
» ist.
» Du belässt die HLP Datei mit allen Seiten (Seiten können ohne Inhalt sein)
» und den TopicId's.
» Zusätzlich zu den TopicId's lässt du beim Aufruf der einzelnen Seiten
» jeweils zwei Makros per ! Fußnote ausführen:
» [code]ExecFile(hh.exe, name.chm::/Pfad/name.htm);Exit()[/code]
» Der String aus der Applikation ruft wie bisher kontextsensitiv die Seite
» in der HLP auf. Von dort wird wiederun die korrekte Seite innherhalb der
» CHM aufgerufen und die HLP wird geschlossen.
»
» Ich werde diese Antwort auch bei dir im Forum posten.

powered by my little forum