Windows-Helpfiles (.chm) zeigen keinen Inhalt an

Dieses Problem hat mich mal wieder viel länger beschäftigt als gedacht: Bei einem unter RemoteDesktopServices (“Terminalserver”) genutzen Programm wird in der Hilfe nur der Index in der linken Spalte des Hilfefensters angezeigt, die eigentliche Hilfe im rechten Teil bleibt leer.

Das Programm ist nicht auf dem Terminalserver selbst, sondern in einer Share im DFS installiert. Es liegt nur eine Verknüpfung zur exe auf dem Desktop des Terminalservers. Das Programm selbst funktioniert wunderbar und zeigt auch obwohl es nicht lokal installiert ist bei Start keine Warnung (“Diese Datei befindet sich an einem Speicherort …“) an, nachdem ich den Pfad zu der DFS-Share zu Systemsteuerung -> Internetoptionen -> Sicherheit -> Lokales Intranet -> Sites -> Erweitert hinzugefügt habe.

Nur der Hilfeinhalt wird nicht angezeigt. Weder über das Hilfemenü aus dem Programm heraus noch wenn ich die cfm-Datei direkt im Explorer öffne. Bei der Recherche bin ich relativ schnell zu dem Artikel KB892675 gekommen der das Problem beschreibt. Da ich aber die Share bereits zur “Lokales Intranet” Zone hinzugefügt hatte und der im Artikel beschriebene Key “MaxAllowedZone” mit dem Wert “1” (also “Lokales Intranet”) per Default vorhanden war, hat mich dies nicht weitergeführt.

Den ersten Hinweis zur Lösung hat mir ein Artikel auf WinFAQ gebracht: Es gibt im Zusammenhang mit den Zugriffsbeschränkungen auf cfm-Dateien zwei Registry-Keys

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\HHRestrictions
  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions

wobei nur der erste Key per Default vorhanden ist. Sobald ich den zweiten Key manuell (inkl. “MaxAllowedZone”) hinzugefügt hatte, wurde beim Öffnen der chm-Datei aus dem Explorer endlich der Hilfeinhalt angezeigt. Nur beim Aufruf der Hilfe über das Hilfemenü im Programm blieb der Hilfeinhalt immer noch leer.

Hier hat mich ein TechNet-Forumseintrag auf die richtige Idee gebracht: Das Betriebssystem auf dem Terminalserver ist 64 Bit und das Programm aus dem ich die Hilfe aufrufen möchte 32 Bit. Daher muß der “MaxAllowedZone” Key zusätzlich im Wow6432Node-Ast der Registry hinzugefügt werden. Nachdem ich das erledigt hatte wurde der Hilfeinhalt endlich auch beim Aufruf über das Hilfemenü angezeigt.

Letztlich mußte ich diese beiden REG_DWORD Keys zur Registry hinzufügen (die beiden HHRestrictions Keys sind per Default bereits vorhanden):

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001