2009-09-05 8 views
4

Je suis en train d'interfacer le htmlhelp api (ce qui est un grand mot pour une fonction en deux variantes), et j'ai un problème avec la usecase suivante:CHM (HTMLHelp) recherche par mots clés

Supposons que je un éditeur de programmeur simple, avec un tas de fichiers d'aide (.CHM). Certains proviennent de la bibliothèque d'exécution principale, d'autres de bibliothèques plus exotiques. Supposons que les CHM sont conçus normalement et que leurs index contiennent tous les mots-clés que je veux rechercher. Je veux simplement être en mesure de rechercher à travers les différentes CHM lorsqu'un utilisateur appuie sur F1 sur un mot-clé dans l'éditeur

Donc, à peu près je veux (en pseudo-code):

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

J'ai joué un peu avec HH_HELP_TOPIC, mais cela ouvrirait une fenêtre pour chaque tentative de fichier, et pire, ce serait trop lent car les CHM ne resteraient pas en cache.

Y a-t-il vraiment aucune solution à part le bricolage avec, par exemple, chmlib? Ou vaut-il mieux commencer par étudier les fichiers CHM fusionnés?

La langue est Delphi ou clone, mais tout ce que win32/COM et un peu lisible fera.

(modifier) ​​Résultats de la recherche pour les entrées d'index imbriquées pourrait être le problème suivant: HTML Help keyword lookup (/ modifier) ​​

mise à jour 2 Après une longue période, je suis arrivé un indice potentiel ailleurs. Créez un runtime CHM qui fusionne tous les autres CHM. Windows va générer des messages CHW contenant tous les TOC et index du CHM esclave. Requiert Binary TOC = off et Binary Index = on cependant, pour tous les CHM esclaves, et un compilateur CHM installé/disponible. Mais puisque c'est le CHM par défaut de l'atelier, cela pourrait ne pas être trop mauvais.

Répondre

1

Voulez-vous créer un index ou effectuer une recherche ponctuelle pour ces mots clés? Impossible d'extraire le contenu HTML des fichiers CHM avec des noms de fichiers logiques, d'effectuer une recherche dans le contenu HTML et de relier ce contenu au fichier CHM.

+0

Je veux travailler via l'API Windows. Je peux déjà ouvrir et traiter les CHMs en dehors de cela (je les ai générés avec du code propre, sans compilateur MS), mais je préfère utiliser le système Windows sur Windows. –

Questions connexes