2009-09-05 184 views
4

我试图接口HTMLHELP API(这是在两种变型一种功能的大词),我有以下的用例的一个问题:CHM(HTMLHELP)搜索关键字

假设我有一个简单的程序员编辑器,以及一堆帮助文件(.CHM)。一些来自核心运行时库,一些来自更多的外来库。假设CHM是正常制作的,它们的索引包含我想要搜索的所有关键字。我想简单地能够在编辑器中

所以大概我想,当用户按下F1通过各种中药真实性要搜索的关键字(在伪代码):

firstchm 
while not (out of CHMs) and not Found 
    { 
     if keyword in CHM then 
      { 
      found=true; 
      break; 
      } 
     nextchm; 
    } 

我打了一下与HH_HELP_TOPIC,但这会弹出一个窗口为每个尝试的文件,更糟糕的是,它会很慢,因为CHM不会保持缓存。

是否真的没有解决方案,除了DIY例如chmlib?还是值得先研究合并的CHM文件?

语言是德尔福或克隆,但任何win32/COM和有些可读性会做。

(编辑),搜索嵌套索引项结果可能是下一个问题: HTML Help keyword lookup (/编辑)

更新2 后很长一段时间,我得到了一个潜在的暗示别处。制作合并所有其他CHM的CHM运行时。 Windows将为其生成包含所有从CHM的TOC和索引的CHW。虽然需要二进制TOC =关闭和二进制索引=,但对于所有从站CHM以及已安装/可用的CHM编译器。但既然这是CHM研讨会的默认,那可能不算太坏。

回答

1

是否要创建索引或对这些关键字进行一次性搜索?

难道你不能从带有逻辑文件名的CHM文件中提取HTML内容,搜索HTML内容并将其返回到CHM文件?

+0

我想通过Windows API工作。我已经可以打开并处理CHM(我使用自己的代码生成它们,没有MS编译器),但我更喜欢在Windows上使用Windows系统。 –