Kontextsensitive Hilfe in C# und CHM-Dateien

Eine gute Online-Hilfe vermeidet Supportanfragen. Idealerweise bekommt er die Antwort bereits in der Hilfe. Damit der Anwender nicht lange suchen muss, gibt es die Möglichkeit den Anwender direkt zur gewünschten Stelle zu navigieren, z.B. zur Hilfe eines bestimmten Dialogs.

CHM-Dateien erlauben die Definition einer Hilfe-ID. Dies ist ein numerischer Wert, z.B. 1000, welcher es erlaubt eine bestimmte Seite direkt anzuspringen. Jede Seite kann mit einer ID versehen werden. In diesem Beispiel schauen wir uns das Ganze mit C# an. Das Beispiel-Projekt gibt es am Ende des Artikels auch zum Download.

Festlegen der ID für eine Seite

Zuerst gilt es für jede Seite die Hilfe-ID zu vergeben. Dies ist je nach Software unterschiedlich. In unserer Software DA-HelpCreator ist dies einfach in den Meta-Einstellungen zur Seite möglich:

Hier tragen wir nun die Hilfe-ID ein:

Dies wiederholen wir für jede Seite, welche wir anspringen wollen. Anschließend erzeugen wir die CHM-Datei.

Kontextsensitive Hilfe in C#

Die Hilfe-Datei legen wir im Beispiel im Programmverzeichnis ab. Also im gleichen Pfad wie unsere .exe Datei.

Den Pfad zur Hilfe-Datei können wir, mit folgendem Befehl ermitteln:

String help = Path.Combine(new Uri(Path.GetDirectoryName
(Assembly.GetExecutingAssembly().CodeBase)).LocalPath, "help.chm");

“help.chm” ist hierbei der Dateiname der Hilfe-Datei. Der Rest sieht etwas wüst aus, aber ermittelt nur den Pfad zu unserem Programm.

Wollen wir die Hilfe-Datei nun einfach so öffnen, können wir dies mit folgenden Befehl erledigen:

System.Diagnostics.Process.Start(help);

Wir starten hier einfach die CHM-Datei. Dies öffnet die Datei in der Standardansicht, als ob wir sie mit Doppelklick starten.

Um zu einer Seite mit ID zu springen können wir folgenden Befehl verwenden:

Help.ShowHelp(this, help, HelpNavigator.TopicId, "1000");

Das Ergebnis ist, dass die Seite mit ID 1000 geöffnet wird:

Somit ist es ein leichtes, z.B. von einem Dialog die F1 Taste abzufangen und die gewünschte Hilfe-Seite zu öffnen.

Fazit

Das Erzeugen einer kontextsensitiven Hilfe ist etwas Fleißaufwand. Die IDs müssen vergeben werden und anschließend muss in der Software nur noch das Öffnen der Hilfe, an der richtigen Stelle, implementiert werden.

Download des Beispiels

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert