Fichier CHM et HHCTRL.OCX - Delphi/Pascal - Programmation
Marsh Posté le 25-11-2005 à 20:54:20
Il suffit de lancer hh.exe avec certains paramètres il me semble
Marsh Posté le 26-11-2005 à 00:49:38
Je pense pas qu'on puisse appeler directement l'exe avec des paramètres, en tout cas j'ai rien trouvé sur le net dans ce sens. J'ai quand même fini par trouver quelque chose.
Voici la solution (en tout cas une solution) :
1. Utiliser la fonction HtmlHelpA de l'ocx HHCTRL. Dans les exemples trouvés sur Internet la fonction est généralement liée en statique.
Code :
|
Mais il est également possible de lier dynamiquement la fonction.
2. Définir les variables d'appels aux commandes de HtmlHelp.
Code :
|
Toutes ces commandes sont disponibles mais HH_DISPLAY_TOC et HH_KEYWORD_LOOKUP suffisent.
3. Définir la structure qui va être passé en paramètre de l'appel HH_KEYWORD_LOOKUP
Code :
|
4. Remplir la structure HH_AKLINK
Code :
|
5. Ouvrir l'aide grâce à ces deux appels :
Code :
|
Avec szParams le mot recherché et szPath le chemin vers le fichier CHM.
HtmlHelp renvoie le handle de l'aide. Il est donc possible de tester si l'aide a pu être ouverte en regardant si le handle n'est pas nul.
Voilà vous savez tout, de l'aide est dispo aux adresses suivantes :
http://www.paranoia.clara.net/arti [...] _help.html
http://msdn.microsoft.com/library/ [...] lookup.asp
http://msdn.microsoft.com/library/ [...] aklink.asp (explique comment remplir la structure)
http://bdn.borland.com/article/0,1410,27842,00.html
Marsh Posté le 26-11-2005 à 10:29:05
Tetranos a écrit : Je pense pas qu'on puisse appeler directement l'exe avec des paramètres, en tout cas j'ai rien trouvé sur le net dans ce sens. |
Il y a des paramètres, c'est sûr.
Pour lancer l'aide sur une rubrique précise il y a ceci que j'ai utilisé :
Format('hh.exe -mapid %d %s', [HelpContext, strHelpFile])
Je ne suis plus sûr par contre qu'on peut passer un mot clé.
Mais il y a ça sinon :
http://www.keyworks.net/keyhh.htm
Enfin, ta solution est probablement meilleure, merci de l'avoir postée
Marsh Posté le 04-01-2006 à 18:42:47
Désolé de remonter ce message mais la solution que j'ai donnée n'est pas totalement juste alors voici une précision.
En fait j'avais mal défini la structure ce qui provoque une erreur aléatoire. Voici comment la structure doit réellement être définie
Code :
|
Marsh Posté le 25-11-2005 à 18:50:24
Bonjour à tous...
Je suis en train de développer un logiciel dans lequel j'ai besoin d'ouvrir des fichiers d'aide CHM. J'ai presque atteinds mon but en utilisant l'ocx HHCTRL de la façon suivante :
Ceci à bien pour effet d'ouvrir le fichier CHM et de mettre le mot (szParams) dans la zone de saisie de l'onglet Index, mais je souhaite maintenant que la section correspondante au mot recherché soit directement affichée (en gros faire comme si l'utilisateur avait cliqué sur le bouton afficher).
Voilà...j'attends vos pistes et solutions...
Par avance merci.