Zum Inhalt

HTMLHelp Befehlszeile

HH.EXE wird mit Windows HTMLHelp verteilt, so dass Sie sich darauf verlassen können, dass es vorhanden ist. Die Datei hh.exe steht im Windows Ordner und hat eine limitierte Anzahl von command-line Optionen. HH.EXE ist mit den CHM Dateien verknüpft. So können Sie eine CHM Datei doppelklicken und Windows öffnet diese Datei über HH.EXE. Es ist eine sehr kleine Datei und übergibt in den meisten Fällen den Hilfedateinamen an die HH API Library. HH.EXE ist keine Einzelinstanz, wenn Sie eine CHM Datei dreimal mit Hilfe von HH.EXE aufrufen, dann werden drei Hilfefenster erscheinen.

Für eigene Versuche mit der HTMLHelp Befehlszeile können Sie hier eine einzelne CHM Beispieldatei (CHM in ZIP) herunterladen. Entpacken Sie die Datei anschließend in ein lokales Laufwerk z.B. D:/_temp.

Eine kompilierte Hilfedatei behält die Ordnerstruktur bei, in der sie vor der Kompilierung organisiert war.

Wenn ein Projekt zum Beispiel in drei Ordnern organisiert ist (einer für HTML-Dateien, einer für Bilder und einer für Stylesheets), enthält die Hilfedatei intern dieselben Ordner. Der Ordner, in dem sich die Projektdatei befindet, wird als Stammordner betrachtet. Um einen korrekten Link zu einer Themendatei zu erstellen, müssen Sie den vollständigen Pfad angeben.

Befehlszeile oder Batch-Script

Aufruf über die Befehlszeile oder eine Batch-Datei:

hh.exe mk:@MSITStore:D:\_temp\CHM-example.chm::/Garden/flowers.htm

Um die DOS-Fenster bei Verwendung des Befehls in einem Batch-Skript zu unterdrücken, kann der Aufruf mit dem Parameter /B durchgeführt werden.

start /B hh.exe mk:@MSITStore:D:\_temp\CHM-example.chm::/Garden/flowers.htm

Weitere Informationen zu diesem Parameter findest du unter Simon Sheppard's website.

Hilfethema mit der Hilfe-ID öffnen

Die Hilfe ID ist eine Nummer e.g. 20010, die Sie im [MAP] Abschnitt Ihrer Projektdatei (.hhp) definieren müssen und auf das erforderliche Thema im [ALIAS] Abschnitt abgebildet haben. Die Funktionalität -map ID chm in der Befehlszeile wurde ab HTMLHelp 1.1b verfügbar.

hh.exe -mapid 20010 ms-its:D:\_temp\CHM-example.chm

Hilfethema mit der Pfadangabe öffnen

Das Protokoll mk:@MSITStore ist eine frühere Version und funktioniert mit IE3 und höher, während ms-its mit IE4 und höher funktioniert. Als eine kürzere Version von "ms-its" kann auch einfach "its" verwendet werden.

hh.exe mk:@MSITStore:D:\_temp\CHM-example.chm::/Garden/tree.htm

hh.exe ms-its:D:\_temp\CHM-example.chm::/Garden/tree.htm

hh.exe its:D:\_temp\CHM-example.chm::/Garden/tree.htm

In den neueren Versionen von HH ist das Protokoll-Präfix nicht einmal mehr erforderlich.

hh.exe D:\_temp\CHM-example.chm::/Garden/tree.htm

Sie können den Pfad zur CHM Datei weglassen, wenn diese Datei im %SystemRoot%\Help Verzeichnis gespeichert ist oder unter dem folgenden Schlüssel in der Windows Registry angemeldet ist: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\HTML Help

hh.exe CHM-example.chm

Es ist möglich, zu Lesezeichen z.B. AnchorSample zu springen, die in Ihrem HTML-Thema kodiert sind:

hh.exe D:\_temp\CHM-example.chm::/HTMLHelp_Examples/Jump_to_anchor.htm#AnchorSample

Für besondere Fälle z.B. um ein eigenständiges HTML-Hilfefenster zu erstellen, können Sie KeyHH (EXE in ZIP) installieren, ein kostenloses Programm von KeyWorks Software, geschrieben von Ralph Walden. KeyHH.exe ist ein Programm, das die HTML-Hilfe erweitert. Es kann zusätzlich zu oder als vollständiger Ersatz für HH.EXE verwendet werden. KeyHH bietet die gesamte Funktionalität von HH.EXE, bietet Lösungen für einige bekannte Fehler in der HTML-Hilfe und bietet zusätzliche Funktionalität.

  • KeyHH.zip herunterladen
  • Die darin enthaltene KeyHH.exe in einen temporären Ordner entpacken, z.B. D:/_temp
  • KeyHH.exe ausschneiden und in C:/Windows einfügen, wo sich auch hh.exe befindet (mit Administratorrechten)

Als früherer Microsoft Help MVP habe ich den Inhalt vor einigen Jahren nach http://keyworks.help-info.de kopiert. Hier findest du weitere Informationen. Die alte Website keyworks.net ist nicht mehr verfügbar.

Anwendungsbeispiele zu Hilfethema öffnen

Run command

Erinnern Sie sich an das alte MS-DOS und die heutigen Windows 10 Tastaturkürzel und Ausführungsbefehle. Versuchen Sie Windows + R

Zeige Thema - Run command

Eingabeaufforderung

Zeige Thema - Eingabeaufforderung

PowerShell

Zeige Thema - PowerShell

Internet Explorer

Die Möglichkeit, in eine ITS (CHM) Datei zu schauen, gibt es nur im Microsoft Internet Explorer. Nur der Internet Explorer (NICHT der Microsoft Edge-Browser) kann einen lokalen Pfad wie den folgenden laden:

ms-its:D:\_temp\CHM-example.chm::/Garden/tree.htm

Das Präfix ms-its: ist ein anfügbares Protokoll aus früheren Zeiten, das sich an alte, vom World Wide Web Consortium (W3C) aufgestellte Standards hält. Das ms-its-Protokoll funktioniert mit Microsoft Internet Explorer 4.0 oder höher, wird aber nicht von allen Browsern unterstützt.

Zeige Thema - Internet Explorer

Warnung

Verwenden Sie den folgenden Trick nur für einen Testfall. Der Internet Explorer hat ausgedient, und Sie werden mit mehreren ungepatchten Sicherheitslücken surfen müssen.

Erstellen Sie einfach eine VBScript-Datei, z. B. Internet-Explorer.vbs mit dem folgenden Code:

CreateObject("InternetExplorer.Application").Visible=true

Dadurch wird der in Windows 10/11 vorinstallierte IE gestartet. In diesem Stadium ist er mit Windows gebündelt, kann aber nicht direkt durch Anklicken seiner ausführbaren Datei gestartet werden.

Wer PowerShell nutzen möchte, kann folgenden Code in eine Datei speichern und ausführen:

# start Internet Explorer (IE is outdated - you are warned!)
$ie_com = new-object -comobject InternetExplorer.Application -strict

# set local path to CHM topic file
$ie_its = "ms-its:D:\_temp\CHM-example.chm::/Garden/tree.htm"

# navigate
Write-Host "Connecting using URL:`n $ie_its"
$ie_com.navigate2($ie_its)
Write-Host "Successfully created Internet Explorer window with:`n $ie_its"

# make it visible (just to check what is happening)
$ie_com.visible = $true

Dekompilieren einer CHM-Hilfedatei mit HH.EXE

Wie bereits erwähnt, ist %SystemRoot%\hh.exe der Viewer für CHM-Dateien in Windows und kann CHM-Dateien nicht nur anzeigen, sondern auch extrahieren. Keine Schnittstelle - geben Sie einfach "hh.exe -decompile .chm" in eine Eingabeaufforderung, eine Batch-Datei oder ein PowerShell-Fenster ein und ändern Sie es nach Bedarf, wobei das Verzeichnis ist, in das die Dateien abgelegt werden sollen. Dies kann einfach "." sein.

hh.exe -decompile D:/_temp/decompile-folder D:/_temp/CHM-example.chm

CHM mit hh.exe und PowerShell dekompilieren

Bitte beachten Sie, dass Sie -decompile nur verwenden können, wenn der Ordnerpfad und der Name der Hilfedatei kein Leerzeichen enthalten. hh.exe ist schlecht kodiert, was das Parsen von Kommandozeilenargumenten angeht. Es unterstützt hh.exe "D:\gxml\test\a b\1.chm", um eine kompilierte Hilfedatei mit einem Leerzeichen im vollqualifizierten Hilfedateinamen zu öffnen. Aber bei der Verwendung von -decompile interpretiert es die erste Reihe von Leerzeichen nach -decompile immer als Beginn des Ordnerpfades und die zweite Reihe von Leerzeichen nach -decompile als Beginn des Hilfedateinamens, auch wenn Anführungszeichen um die beiden Argumente herum verwendet werden.

Das Dekompilieren der Datei erzeugt eine Reihe von HTML- und Bilddateien, zusammen mit der Inhaltsverzeichnisdatei (.hhc), der Indexdatei (.hhk) und einigen anderen unterstützenden Dateien.

Zu beachten ist, dass der Dekompilierungs-/Rekompilierungsprozess kein "round-trip" Prozess ist. Bestimmte Funktionen, die der Hilfeautor der ursprünglichen Hilfedatei hinzugefügt hat, können beim Dekompilieren nicht wiederhergestellt werden, so dass sie nach dem Neukompilieren möglicherweise nicht mehr richtig funktionieren. Dies gilt insbesondere für die kontextabhängige Hilfe, die in der neuen Version der Datei möglicherweise nicht mehr funktioniert.

Hinweis

Als besonderer Trick unter Hilfe-Autoren gilt es, die Projektdatei .hhp in die CHM Datei zu kompilieren. Dies kann das Dekompileren wesentlich erleichtern. Leider ist das nur in sehr wenigen Ausnahmefällen gegeben.

Wie man mit KeyTools dekompiliert

Der einzige Decompiler mit zusätzlichen Funktionen ist KeyTools, da dieser versuchen kann, die Projektdatei (.hhp) neu zu erstellen. Sie benötigen diese Datei, wenn Sie das Hilfsprojekt erneut kompilieren wollen.

Bei Bedarf finden Sie hier eine ausführliche Installationsanleitung.

HTMLHelp von der Kommandozeile kompilieren

Für eigene Versuche mit dem HTMLHelp Workshop Kompiler sollten Sie ein CHM Beispielprojekt (ZIP) herunterladen. Entpacken Sie die Dateien anschließend in ein lokales Laufwerk z.B. D:/_temp.

In einem Ordner, der die HTMLHelp Workshop Projektdatei (.hhp) enthält, lautet der erforderliche Kompiler-Befehl:

hhc CHM-example.hhp

Sie müssen den relativen oder absoluten Pfad zur Datei .hhp angeben, wenn Sie von einem anderen Verzeichnis kompilieren der diese Datei enthält. Und Sie müssen sicherstellen, dass das HTML Help Workshop Programmverzeichnis in dem Pfad ist, wo sich die hhc.exe befindet.

  • Schließen Sie den HTMLHelp Workshop
  • Klicken Sie auf das Start menu,wählen Sie Run and geben Sie cmd ein.
  • Tippen Sie bei Windows 10 z.B.:

    "%ProgramFiles(x86)%\HTML Help Workshop\hhc" d:/_temp/CHM-example.hhp

oder um eine Log-Datei im aktuellen Verzeichnis zu erhalten (falls nicht schon unter [Options] in der .hhp deklariert wie z.B. Error log file=_errorlog.txt)

"%ProgramFiles(x86)%\HTML Help Workshop\hhc" d:/_temp/CHM-example.hhp > log.txt

Dieses Kommando setzt voraus, dass Sie den HTMLHelp Workshop im Standardverzeichnis installiert haben Sie müssen die Kommandozeile ändern, wenn sie eine Installation in einem anderen Verzeichnis vorgenommen haben.

Beim alten 32bit Windows ist %ProgramFiles% zu verwenden.

Bei 64bit Windows haben sich die Dinge geändert, weil Anwendungen in %ProgramFiles% oder %ProgramFiles(x86)% installiert sein können.

VBA Beispiel (Excel)

Sub HTMLHelp_Compilieren()
'// Aufruf des HTMLHelp Datei (CHM) Compilers aus Excel (VBA)

Shell """C:\Program Files\HTML Help Workshop\hhc.exe""" & _
"d:\_temp\CHM-example.hhp", vbNormalFocus

End Sub