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.