2009-09-05 3 views
4

Я пытаюсь интерфейс с HTMLHelp API (который является большим словом для одной функции в двух вариантах), и у меня есть проблемы со следующим USECASE:CHM (HtmlHelp) поиск ключевого слова

Предположит, у меня есть простой редактор программиста, с кучей файлов справки (.CHM). Некоторые из них из основной библиотеки времени выполнения, некоторые из более экзотических библиотек. Предположим, что CHM создаются нормально, а их индексы содержат все ключевые слова, которые я хочу найти. Я хочу быть просто в состоянии искать через различные CHMs, когда пользователь нажимает клавишу 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?

Язык - это Delphi или клон, но что угодно win32/COM и некоторая читаемость.

(редактировать) Результаты поиска для вложенных записей индекса может быть следующая проблема: HTML Help keyword lookup (/ редактировать)

обновление 2 После долгого времени, я получил потенциальную подсказку в другом месте. Создайте время выполнения CHM, которое объединяет все другие CHM. Windows будет генерировать CHW для него, содержащего все подчиненные CHM TOC и индексы. Требуется Binary TOC = off и Binary Index = on, хотя для всех подчиненных CHM и установлен/доступен компилятор CHM. Но поскольку это мастерская CHM по умолчанию, это может быть не так уж плохо.

ответ

1

Вы хотите создать индекс или сделать одноразовый поиск этих ключевых слов?

Не могли бы вы извлечь содержимое HTML из файлов CHM с логическими именами файлов, искать содержимое HTML и связать это с CHM-файлом?

+0

Я хочу работать через Windows API. Я уже могу открыть и обработать CHM за пределами этого (я сгенерировал их с помощью собственного кода без MS-компилятора), но я бы предпочел использовать систему Windows на окнах. –

Смежные вопросы