【问题标题】:How to find Topic IDs in a CHM file如何在 CHM 文件中查找主题 ID
【发布时间】:2012-03-23 16:54:54
【问题描述】:

我想从我的 C# 项目中打开一个 CHM 文件。我想打开 CHM 文件的相关部分,因此我使用以下代码行

Help.ShowHelp(this, help_file, HelpNavigator.TopicId, topic_id);

问题是,我没有 CHM 文件的来源,也不知道它的主题 ID。有没有办法获取这个 CHM 文件的主题 ID?

【问题讨论】:

标签: c# chm


【解决方案1】:

使用各种提取器之一(主要基于 chmlib)提取 CHM,然后查看提取的“*.hhc”文件。这是一个主题图,将主题图块/ID 与 CHM 文件中的内部 url 相匹配。

请注意,一些罕见的 CHM 文件具有二进制 TOC 且没有 hhc 文件,但这种可能性非常低,因为 HH 默认不鼓励这样做。

稍后添加: Free Pascal chmls 工具的提取选项数量已更新。 (虽然有些更多的是转储功能而不是真正的提取):确保您从 2.6.4+ 获得一个

列表[节号] 显示存档目录的内容 提取 [saveasname] 从存档“文件名”中提取文件“要获取的文件名”, 并且,如果指定,将其保存到 [saveasname] extractall [目录] 将存档“文件名”中的所有文件提取到目录 “目录” unblockchm [filespec2] .. 批量解锁 (XPsp2+) 相关 CHM。多个文件 并且允许使用通配符 extractalias [基本文件名] [符号前缀] 从文件“chmfilename”中提取上下文信息 到“basefilename”.h 和“basefilename”.ali, 使用符号“symbolprefix”contextnr extracttoc [文件名] 提取目录(主要是检查二进制目录) extractindex [文件名] 提取索引(主要是检查二进制索引) 打印idxhdr 以可读格式打印#IDXHDR 打印系统 以可读格式打印#SYSTEM 打印窗口 以可读格式打印#WINDOWS 打印主题 以可读格式打印#TOPICS

【讨论】:

  • 谢谢,我得到了 hhc 文件。这是一个站点地图 HTML。有这样的项目:<UL> <LI><OBJECT type="text/sitemap"> <param name="Name" value="Produktübersicht"></param> <param name="Local" value="37161011467/37161015563.htm"></param> <param name="FrameName" value="_self"></param> <param name="ImageNumber" value="1"></param> </OBJECT> </LI>应该在这里定义主题ID吗?
  • 现在在 chmls 中也有一些选项,见上文。
猜你喜欢
  • 1970-01-01
  • 2015-08-06
  • 2015-12-04
  • 2011-01-17
  • 2012-03-12
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
相关资源
最近更新 更多