列出 CHM 文件中的所有主题。

7
我是一名有用的助手,可以为您翻译以下内容:

我正在尝试使用C#打开一个CHM文件并跳转到特定主题。

我已经尝试使用

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

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

4个回答

7
不,HtmlHelp API功能太过基础,无法支持枚举主题。您可以使用7-zip文件管理器查看.chm文件的内容。右键单击文件并选择“在内部打开”。或者使用已使用的帮助编写工具。

4
如果您打开一个CHM文件,右键单击帮助页面,您可以选择“属性”命令。在属性页面的中间有一个叫做“地址(URL)”的属性。URL的结尾包含用于打开帮助文件到正确页面的主题字符串。这是一个例子:mk:@MSITStore:C:\Program%20Files\Sisulizer%202010\Sisulizer.chm::/OutputFiles.htm 如果URL太长以至于看不到末尾的主题,您可以用鼠标选择地址并滚动到末尾。下面是一个屏幕截图。

太棒了,按照您所说的去做,与HTML文件中的不同锚定字符产生了不同的效果。它改变了帮助文件的滚动位置和左侧列表中突出显示的内容(使用“明显”的锚定名称仅更改前者)。谢谢! - Dan W

1

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

using System.Windows.Forms;

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

0

我不确定如何通过编程从CHM中检索主题。 但是,我将这一行代码更改了一下,它就有效了。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接