7

我正在尝试使用 C# 让 CHM 文件打开到特定主题。

我试过使用

Help.ShowHelp(this, path, HelpNavigator.Topic, "TopicTitle");

但它没有找到该页面。我一定没有正确键入主题标题。有没有一种方法可以以编程方式从 CHM 文件中检索所有主题,以便我可以看到它们是什么?

4

4 回答 4

7

不,HtmlHelp API 函数过于原始,无法支持枚举主题。您可以使用 7-zip 文件管理器查看 .chm 文件的内部。右键单击该文件并选择“在内部打开”。或者使用使用的帮助创作工具。

于 2010-02-16T21:12:45.377 回答
4

如果您打开一个 CHM 文件,然后右键单击帮助页面,您可以选择“属性”命令。
在“属性”页面的中间有一个名为:地址(URL)的属性。
URL 的末尾包含用于将帮助文件打开到正确页面的主题字符串。

这是一个示例:mk:@MSITStore:C:\Program%20Files\Sisulizer%202010\Sisulizer.chm::/OutputFiles.htm

如果 URL 太长而无法看到最后的主题,您可以用鼠标选择地址并滚动到最后。

这是一个屏幕截图。

在此处输入图像描述

于 2011-05-07T00:29:44.550 回答
1

您还可以使用以下内容,其中path是 chm 文件的路径:

using System.Windows.Forms;

Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
于 2013-01-23T09:43:06.777 回答
0

我不确定如何以编程方式从 CHM 中检索主题。但是我以这种方式更改了一行代码并且它起作用了。

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");
于 2011-07-28T07:46:17.420 回答