Как открыть файл CHM на указанном узле TOC (.NET) - PullRequest
7 голосов
/ 17 июня 2009

Привет! Мне нужна контекстная справка внутри моего приложения .NET. У меня есть файл .chm, и я ищу возможность открыть его в стандартном средстве просмотра и выделить нужную тему содержания (или записи в индексе)

Есть идеи, как архивировать это?

EDIT:

Может быть, приложение MS, используемое для открытия файла CHM, имеет некоторые параметры командной строки, которые позволяют архивировать это?

Кстати: где я могу найти это приложение?

Ответы [ 3 ]

6 голосов
/ 17 июня 2009

Я думаю, что один из следующих URL-адресов может сработать или указать вам больше "веб-хитов" через Google. Но я думаю, что есть некоторые ограничения, например: возможно, работает только в IE, только если chm в надежном расположении, некоторые URL-адреса могут работать только на определенных версиях Windows, ....

mk:@MSITStore:C:\test.chm::/testpage.htm

ms-its:.\test.chm::/html/test.htm

Кажется, я не достаточно конкретен. Вы должны иметь возможность использовать вышеизложенное для непосредственного запуска hh.exe из своего приложения и передачи его в качестве URI в качестве аргумента.

Использование System.Diagnostics.Process и запуск hh.exe следующим образом

hh.exe mk:@MSITStore:C:\test.chm::/test.htm

должен делать то, что вы хотите.

Проверьте Командная строка HTMLHelp , чтобы узнать больше примеров

3 голосов
/ 18 июня 2009

Спасибо, Джефф, я нашел решение.

Ниже описан метод, который может быть полезен. Спасибо за помощь!

public static void ShowHelpByKeyword(Control sourceControl, string helpFile, string parameter) {
   Help.ShowHelp(sourceControl, helpFile, HelpNavigator.KeywordIndex, parameter);
}
3 голосов
/ 17 июня 2009

Возможно, вы захотите заглянуть в класс Help . Это то, что я использую для отображения справки в приложениях Winforms.

...