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

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

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

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

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

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

【问题讨论】:

  • 请不要在问题标题中包含有关所用语言的信息,除非没有它就没有意义。标记用于此目的。
  • 好的,我在这里搜索堆栈溢出,但仍然无法让它工作,因为所有步骤都没有明确解释。所以当我想通了,我想我会把它放在这里,现在我意识到我可以回答其他人的问题。请记住这一点以供将来参考。

标签: c# chm helpfile


【解决方案1】:

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

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

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

    这是一个例子:

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

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

  2. 使用正确的参数调用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 的初始语法!

【讨论】:

    猜你喜欢
    • 2015-12-04
    • 2015-08-06
    • 1970-01-01
    • 2012-06-20
    • 2013-10-08
    • 2021-03-22
    • 2017-06-18
    • 2012-04-30
    • 1970-01-01
    相关资源
    最近更新 更多