我想从我的C#项目中打开一个CHM文件。我想打开CHM文件的相关部分,因此我使用以下代码行
Help.ShowHelp(this, help_file, HelpNavigator.TopicId, topic_id);
问题是,我没有CHM文件的来源,我不知道它的主题ID。有没有办法获取此CHM文件的主题ID?
答案 0 :(得分:2)
使用各种提示符之一(主要是基于chmlib)提取CHM,然后查看提取的“* .hhc”文件。这是一个主题图,它将主题图块/ ID与CHM文件中的内部网址相匹配。
请注意,一些罕见的CHM文件具有二进制TOC且没有hhc文件,但由于HH默认值不鼓励它,因此可能性非常低。
稍后添加: Free Pascal chmls 工具的提取选项数已更新。 (虽然有些更多的是转储功能而不是真正的提取):确保你从2.6.4 +
获得一个list [section number] Shows contents of the archive's directory extract [saveasname] Extracts file "filename to get" from archive "filename", and, if specified, saves it to [saveasname] extractall [directory] Extracts all files from archive "filename" to directory "directory" unblockchm [filespec2] .. Mass unblocks (XPsp2+) the relevant CHMs. Multiple files and wildcards allowed extractalias [basefilename] [symbolprefix] Extracts context info from file "chmfilename" to a "basefilename".h and "basefilename".ali, using symbols "symbolprefix"contextnr extracttoc [filename] Extracts the toc (mainly to check binary TOC) extractindex [filename] Extracts the index (mainly to check binary index) printidxhdr prints #IDXHDR in readable format printsystem prints #SYSTEM in readable format printwindows prints #WINDOWS in readable format printtopics prints #TOPICS in readable format