【问题标题】:List all topics from a CHM file列出 CHM 文件中的所有主题
【发布时间】:2011-01-17 13:48:25
【问题描述】:

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

我尝试过使用

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

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

【问题讨论】:

    标签: c# .net chm helpfile


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      这是一个屏幕截图。

      【讨论】:

      • 太棒了,按照你说的做会得到与 HTML 文件中不同的锚字符串。它改变了帮助文件的滚动位置和左侧列表中突出显示的内容(使用“明显的”锚名称只会改变前者)。谢谢!
      【解决方案3】:

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

      using System.Windows.Forms;
      
      Help.ShowHelp(this, path, HelpNavigator.KeywordIndex, "Topic title");
      

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          猜你喜欢
          • 2015-08-06
          • 2014-04-13
          • 2012-03-12
          • 2012-03-23
          • 2015-12-04
          • 1970-01-01
          • 1970-01-01
          • 2016-04-23
          • 2012-06-20
          相关资源
          最近更新 更多