打开特定主题的 .CHM 文件?

Posted

技术标签:

【中文标题】打开特定主题的 .CHM 文件?【英文标题】:Open a .CHM file to a Specific Topic? 【发布时间】:2014-04-13 13:27:32 【问题描述】:

我创建了一个 .CHM 文件,然后当我在 c# 中打开它时,我得到了第一个主题。我想将它打开到指定的主题。 这是我现在用来打开它的代码。

Help.ShowHelp(this, "./Resources/ServerHelp.chm");

我希望能够将其打开到特定主题,例如音频。我尝试使用

Help.ShowHelp(this, "./Resources/ServerHelp.chm", HelpNavigator.Topic, "Audio");

它显示我找不到页面。我可以通过我的帮助获得一些帮助吗? :P

【问题讨论】:

open specific part of table of contents of chm file c# or vb.net的可能重复 请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。 好的,我在这里搜索堆栈溢出,但仍然无法让它工作,因为所有步骤都没有明确解释。所以当我想通了,我想我会把它放在这里,现在我意识到我可以回答其他人的问题。请记住这一点以供将来参考。 【参考方案1】:

这可以通过以下步骤来实现:

    确定 chm 用于引用内部主题的名称。这是由

    完成的 打开 CHM 文件,在主题页面右击并选择属性。 名为:Address (URL) 的属性在其末尾包含主题页面名称。

    这是一个例子:

    mk:@MSITStore:C:\Program%20Files\Silsila%2011\Silsila.chm::/Audio.htm
    

    这里的主题页面名称是“Audio.htm”

    使用正确的参数调用Help.ShowHelp()函数,如下所示

    Help.ShowHelp(this, "./Resources/Silsila.chm", HelpNavigator.Topic, "Audio.htm");
    

应该这样做。您可以使用步骤 1 来确定您想要的页面的主题名称,然后使用步骤 2 打开该页面上的帮助文件。

【讨论】:

谢谢。当您的“上下文”现在是一个表单并且您仍想触发以在默认主题处显示 CHM 时,该怎么办?在那种情况下,“this”不被接受,因为“this”不是winform等。【参考方案2】:

同样的方法也适用于创建打开特定页面的 Windows 快捷方式。将其用作“目标”命令行:

C:\Windows\hh.exe ms-its:[file_name.chm]::[page_name.htm]

如果您不知道 [page_name]:从 chm 帮助查看器中,尝试在 PdfCreator 等虚拟打印机上打印目标页面。自动生成的输出文件名可能包含 [page_mane]。

感谢 sazr 的初始语法!

【讨论】:

以上是关于打开特定主题的 .CHM 文件?的主要内容,如果未能解决你的问题,请参考以下文章

打开 chm 文件 c# 或 vb.net 目录的特定部分

如何在指定节点 TOC (.NET) 上打开 CHM 文件

为啥我的chm文件打不开

win10打开chm文件怎么打开

电脑弹出不能打开文件secedit.chm怎么办?

chm文件在手机上显示乱码,怎么破?