如何在 CHM 文件中查找主题 ID

mus*_*afa 5 c# chm

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

Help.ShowHelp(this, help_file, HelpNavigator.TopicId, topic_id);
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ort 2

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

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

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

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