以编程方式列出 CHM 文件中的所有主题

发布于 2024-08-21 13:43:32 字数 215 浏览 14 评论 0原文

我正在尝试使用 C# 获取 CHM 文件以打开特定主题。

我尝试过使用

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

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

I am trying to get a CHM file to open to a specific topic using C#.

I have tried using

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

but it doesn't find the page. I must not be keying in the topic title correctly. Is there a way that I can programatically retrieve all of the topics from a CHM file so that I can see what they are?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

鯉魚旗 2024-08-28 13:43:32

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

No, the HtmlHelp API function is far too primitive to support enumerating topics. You could use the 7-zip file manager to look inside the .chm file. Right-click the file and choose "Open Inside". Or use the help authoring tool that was used.

寒江雪… 2024-08-28 13:43:32

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

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

如果 URL 太长,看不到最后的主题,可以选择用鼠标输入地址并滚动到末尾。

这是一个屏幕截图。

在此处输入图像描述

If you open a CHM file, and right click on a help page, you can choose the Properties command.
In the middle of the Properties page there is a property called: Address (URL).
The end of the URL contains the topic string used to open the help file to the correct page.

Here is an example:
mk:@MSITStore:C:\Program%20Files\Sisulizer%202010\Sisulizer.chm::/OutputFiles.htm

If the URL is too long to see the topic at the end, you can select the address with your mouse and scroll to the end.

Here is a screen shot.

enter image description here

忘羡 2024-08-28 13:43:32

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

using System.Windows.Forms;

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

You may also use the following, where path is path to the chm file:

using System.Windows.Forms;

Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
椒妓 2024-08-28 13:43:32

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

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

I am not sure about how to programmatically retrieve topics from CHM.
But I changed the one line code this way and it worked.

Help.ShowHelp(this, path , HelpNavigator.TopicId,"TopicTitle");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文