Créer un fichier d’aide de type .chm (format html)

ThierryAIM

Ce tutoriel a pour but d’apprendre à créer de toutes pièces un fichier d’aide au format html (.chm) avec l’atelier de création Microsoft HTML Help Workshop.

Ce logiciel étant uniquement disponible dans la langue de Shakespeare, il m’a semblé utile de faire une description aussi complète que possible de son utilisation. ♪

- Titre : Créer un fichier d’aide de type .chm (format html)

- Auteur : ThierryAIM

- Parution : 19 août 2004

- Mise à jour : 10 décembre 2007

- Licence : Copyright ® 2007 ThierryAIM. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Généralités

- I-1. Information sur la licence d’utilisation

- I-2. Rappel sur les fichiers d’aides

- II. Premiers pas

- II-1. Les Topics

- II-2. Créer le projet

- III. L’atelier de travail HTML Help Workshop

- III-1. L’onglet Project

- III-1-1. Ajouter/Supprimer des fichiers html (topics)

- III-1-2. Personnaliser la fenêtre d’aide liée à l’application

- III-1-3. Options du projet

- III-2. L’onglet Contents (Table des matières)

- III-3. L’onglet Index

- III-4. Fin du projet

- IV. Lier un fichier .chm à un programme VB6

- IV-1. Associer le fichier d’aide à l’application

- IV-1-1. Par l’interface VB6

- IV-1-2. Par le code

- IV-2. Lancer l’aide en ligne

- IV-3. Définir les ContextID

- IV-4. C’est fini !

- V. Téléchargements

I - Généralités

I-1 - Information sur la licence d’utilisation

HTML Help Workshop est librement téléchargeable et utilisable par les possesseurs d’une licence professionnelle ou supérieure de VB6 (il est livré de base sur les CD d’installation de VB6)

I-2 - Rappel sur les fichiers d’aides

Ce type de fichier est constitué de pages (appelées Topic) décrivant chaque fonctionnalité du programme auquel il est associé
Chaque Topic peut être associé à un Contexte d’aide (appelé ContextID), défini dans le programme hôte. Nous reviendrons sur ce principe plus loin dans le tutoriel.

Ces fichiers peuvent comporter :

- une table des matières (Table of contents), soit un fichier de type .hhc ;

- un Index, soit un fichier de type .hhk ;

- une table de contexte, soit un fichier de type .h.

Nous verrons plus tard comment créer ces différents fichiers

Avant d’aller plus avant dans la création de votre projet d’aide, vous devez élaborer un plan de construction, c’est-à-dire définir toutes les rubriques dont vous aurez besoin pour décrire les fonctionnalités de votre programme
Cette étape est spécifique à votre application et personne mieux que vous ne sait ce qu’il est utile et important de décrire.
Vous pouvez par exemple consacrer un topic à chaque élément du menu de votre form principale ou chaque fonctionnalité spécifique, à vous de voir, je ne peux pas le faire pour vous !

Ce plan de construction nous servira plus tard à bâtir la table des matières du fichier help.

II - Premiers pas

II-1 - Les Topics

C’est la partie la plus fastidieuse ! Avis aux amateurs de rédaction ;-)

Vous devez rédiger chaque page de votre fichier afin de décrire au mieux les fonctionnalités de votre application
Utilisez n’importe quel éditeur capable d’enregistrer au format html (Microsoft Word, par exemple ou tout autre éditeur à votre convenance)

Faites votre mise en forme directement dans votre éditeur (Titres, liens hypertextes, couleurs…) et enregistrez chaque topic au format html.

Créer un fichier html par topic, le découpage en contexte (ContextID) en sera simplifié.

À ce point du projet, il n’est pas nécessaire de créer toutes les pages, nous verrons plus loin comment ajouter des topics au projet

II-2 - Créer le projet

Nous allons maintenant entrer dans le vif du sujet et créer notre projet

Ouvrir HTML Help Workshop

Dans le menu « File », sélectionner « New » et choisir « Project » dans la 1re boite de dialogue :

cliquer sur « OK

Laisser décochée la case « Convert WinHelp Project » (ce n’est pas l’objet de ce tutoriel)
Cliquer sur « Suivant »

Choisir le répertoire (utiliser la fonction Browse… (Parcourir…) si nécessaire) et le nom du fichier projet
Cliquer sur « Suivant »

À ce stade de la création du projet, si aucun de ces fichiers n’existe, laissons donc les cases décochées
Si vous avez créé quelques pages html, cochez la case HTML files, l’assistant création vous demandera de sélectionner les fichiers à inclure dans le projet
Cliquer sur « Suivant »

Cliquer sur « Terminer » pour créer la base de notre projet.

Voilà ce que nous obtenons :

III - L’atelier de travail HTML Help Workshop

III-1 - L’onglet Project

Modifier les options du projet (« Change Project options »)

Ajouter/Supprimer des fichiers Topics (« Add/remove topic file »)

Ajouter/Modifier les définitions de fenêtres (« Add/modify window definitions »)

Définir les informations pour l’API HTML Help (« HTML Help API information »)

Voir la source Html (« View HTML source »)

Sauvegarder les fichiers projet/table des matières/index (« Save project, contents and index files »)

Sauvegarder tout et Compiler (« Save all files and compile »)

À tout moment vous pouvez tester l’intégrité de votre projet en utilisant la fonction « Sauvegarder tout et Compiler », mais attention de procéder par ordre dans la création de votre projet, le compilateur se révélant parfois capricieux ?!

III-1-1 - Ajouter/Supprimer des fichiers html (topics)

Pour cette opération, vous devez avoir créé un ou plusieurs fichiers topics, enregistrés au format html :

- cliquer sur « Ajouter/Supprimer des fichiers Topics » ;

- cliquer sur « Add » ;

- sélectionner le répertoire où se trouvent vos fichiers html ;

- sélectionner les fichiers à ajouter du projet (vous pouvez utiliser les fonctions de multisélection (Shift, Ctrl) de Windows) ;

- cliquer sur « OK ».

Vos fichiers sont maintenant ajoutés dans la section [FILES] du projet.

Pour supprimer un fichier de la liste :

- cliquer sur « Ajouter/Supprimer des fichiers Topics » ;

- sélectionner dans la liste le fichier à supprimer ;

- cliquer sur « Remove ».

III-1-2 - Personnaliser la fenêtre d’aide liée à l’application

Dans notre exemple, nous supposerons qu’une seule fenêtre personnalisée est utilisée par le fichier d’aide, mais vous découvrirez en parcourant les différentes possibilités de l’atelier Html Help Workshop qu’il est possible d’utiliser plusieurs fenêtres avec des options différentes et de les affecter à différentes parties de votre projet.

Cliquer sur « Ajouter/Modifier les définitions de fenêtres »

- Donner un nom à la fenêtre : ici W1
- Cliquer sur « OK »

- Dans l’onglet « General » , indiquer le titre du fichier d’aide qui sera affiché dans la barre de titre de la fenêtre, dans le champ « Title bar text »
- Dans l’onglet « Buttons », cocher les boutons que vous souhaitez voir afficher dans l’aide (au moins Hide/Show, Back, Forward et Print)
Nota : « Jump1 » et Jump2" sont des boutons librement personnalisables.
Vous pouvez leur donner un titre (Caption) et leur affecter un lien sur un fichier html quelconque (faisant partie de l’aide ou pas) à condition que ce fichier soit inclus dans le projet (voir l’exemple en téléchargement pour plus de détail)
- Dans l’onglet « Position », définir les options de position de la fenêtre, à l’ouverture du fichier d’aide
Vous pouvez cocher l’option « Save user defined window after first use » si vous souhaitez que l’utilisateur puisse personnaliser la position et la taille de la fenêtre d’aide
Utilisez le bouton « Autosizer » pour définir la position et la taille par défaut de votre fenêtre d’aide
Le bouton « Default position » ramène les paramètres de taille et position aux valeurs par défaut de Html Help
- Dans l’onglet « Files », sélectionner les fichiers et topics en fonctions des options choisies
Si vous n’avez pas encore défini de fichiers Contents et index, vous pourrez toujours modifier ces options par la suite
Définissez ici les liens associés aux boutons « Home », « Jump1 », « Jump2 » ainsi que le lien par défaut « Default »
- Dans l’onglet « Navigation Pane » :
Le panneau de navigation permet d’afficher les onglets « Sommaire », « Index », « Rechercher » et « Favoris » et les boutons de navigation de la fenêtre d’aide, en fonction des options choisies
Cocher la case « Window with navigation pane, topic pane and buttons » pour afficher le panneau de navigation dans la fenêtre d’aide et afficher le choix des options :
Cocher les options du panneau de navigation (vous pouvez définir une largeur par défaut de ce panneau dans la case « Navigation pane width », la largeur restante de la fenêtre sera affectée au texte d’aide)
Si vous souhaitez un onglet « Rechercher » dans le panneau de navigation, cocher l’option « Search Tab » et l’option « Advanced »
Si vous souhaitez un onglet « Favoris » dans le panneau de navigation, cocher l’option « Favorites Tab »

Notez que les onglets « Sommaire » et « Index » seront créés automatiquement si vous avez défini les fichiers correspondants

Si l’assistant de création de fenêtre s’ouvre (option onglet « Rechercher » cochée), cocher l’option « Compile full-text Information » comme dans l’écran ci-dessous :

Cliquer sur « Suivant » puis sur « Terminer »

Je vous laisserai découvrir par vous-même les différentes possibilités des derniers onglets ; ceci n’est pas primordial pour réaliser une première application HTML Help

III-1-3 - Options du projet

Dans l’onglet 'General' :

- donner un titre à votre projet ;

- choisir la page qui s’affichera par défaut ;

- choisir la fenêtre par défaut (dans le cas de notre projet : W1).

Dans l’onglet 'Files', définir :

- le nom du fichier compilé de votre projet (avec l’extension .chm) ;

- le nom du fichier log (ce fichier stockera le rapport de compilation) ;

- le fichier table des matières (Contents) avec l’extension .hhc ;

- le fichier Index (s’il existe) avec l’extension .hhk.

Laisser inchangées les autres options.

III-2 - L’onglet Contents (Table des matières)

En cliquant pour la première fois sur l’onglet « Contents », vous êtes invité à choisir de créer un nouveau fichier ou sélectionner un fichier existant :

- Choisir dans notre cas de créer un nouveau fichier
Cliquer sur « OK »

Donner un nom au fichier .hhc à créer dans la boite de dialogue Windows standard qui apparaît

À ce stade du projet, si vous créez un nouveau fichier Contents, vous devez créer au moins une entrée dans ce fichier avant de compiler votre projet, sinon le compilateur râle !

Créer/Modifier/Supprimer une entrée dans la table des matières

Cliquer pour créer un chapitre

Donner un titre au chapitre dans le champ « Entry Title » et valider par « OK »

Cliquer pour créer une page isolée ou une page d’un chapitre

Si aucun chapitre n’a été créé, vous pouvez créer une page seule

Si vous avez créé un ou plusieurs chapitres, vous devez sélectionner un chapitre

Le logiciel propose de créer cette nouvelle page comme page indépendante ou comme sous-page du chapitre sélectionné :

Choisissez l’option désirée par « Oui » ou « Non »
Il est possible de modifier la hiérarchisation des pages par la suite à l’aide des flèches de déplacement

- Donner un titre à la page dans le champ « Entry Title »
- Cliquer sur « Add »
- Choisissez dans la liste proposée des fichiers html inclus dans le projet, le fichier topic qui doit être associé à l’entrée créée dans la table des matières
« Valider par » OK "

Cliquer pour éditer les caractéristiques de l’entrée sélectionnée

Utiliser « Edit » ou « Remove » pour modifier le fichier associé à l’entrée

Dans l’onglet « Advanced », vous pouvez modifier l’icône associée à chaque chapitre ou page de la table des matières NOTA : Cette opération n’est pas possible au moment de la création de la page

Sélectionner une entrée et cliquer pour supprimer

Utiliser les flèches pour déplacer les topics ou hiérarchiser votre table des matières

(le fonctionnement est similaire à l’assistant créateur de menu de VB6)

À ce stade du projet, vous devez obtenir un fichier Contents qui ressemble à la vue ci-dessous :

III-3 - L’onglet Index

Comme nous l’avons vu pour l’onglet « Contents », en cliquant pour la première fois sur l’onglet « Index », vous êtes invité à choisir de créer un nouveau fichier ou sélectionner un fichier existant :

Choisir dans notre cas de créer un nouveau fichier
Cliquer sur « OK »

Donner un nom au fichier .hhk à créer dans la boite de dialogue Windows standard qui s’affiche

Procéder comme pour la création du fichier Contents :

- cliquer sur le bouton « Insert a Keyword » ;

- définir un mot clé dans le champ « Keyword » ;

- cliquer sur « Add » pour associer le ou les topics se rapportant à ce mot clé.

Vous pouvez modifier les attributs d’un mot clé en cliquant sur le bouton « Edit selection ».

III-4 - Fin du projet

Dans ce chapitre, nous avons parcouru tous les éléments importants pour créer notre premier projet d’aide html

Sauvegarder votre projet

Sauvegarder et compiler votre projet

Visualiser le résultat !

Vous pouvez modifier à tout moment les fichiers et tables du projet

N’oubliez pas l’étape ci-dessus après toute modification

Il ne nous reste plus qu’à intégrer notre aide html dans l’application hôte

IV - Lier un fichier .chm à un programme VB6

IV-1 - Associer le fichier d’aide à l’application

IV-1-1 - Par l’interface VB6

- Dans VB6, cliquer sur le menu « Projet ».

- Sélectionner « Propriété du projet ».

- Dans l’onglet « Général », indiquer le nom et le chemin de votre fichier .chm.

IV-1-2 - Par le code

Copier votre fichier d’aide dans le répertoire de l’application
Au lancement de votre application (dans l’évènement Load de la 1re form ou dans la Sub Main), insérer le code suivant :

App.HelpFile = App.Path & "\" & MonFichierHtml.chm

Si VB6 est ouvert avec votre application et que vous avez lié le fichier d’aide par l’interface VB, vous devez fermer VB6 avant de lancer une compilation du fichier d’aide dans HTML Help Workshop, sinon le compilateur râle encore !!

IV-2 - Lancer l’aide en ligne

Lorsque le fichier d’aide a été associé à l’application (voir ci-dessus), l’appui sur la touche F1 permet de lancer l’aide en ligne sur la page par défaut, définie dans le projet html help.

Vous pouvez, par le code, ouvrir l’aide en ligne directement sur l’onglet « Sommaire », « Index » ou « Rechercher ».
Le code source est disponible dans le chapitre ou dans la FAQ VB6.

IV-3 - Définir les ContextID

VB6 permet d’associer une rubrique d’aide en ligne à tous les contrôles qui disposent de la propriété HelpContextID
La propriété HelpContextID est un entier long
Définir pour chaque topic de votre fichier d’aide la valeur de HelpContextID.suivant les contrôles auxquels sont liées les rubriques
Il n’y a pas de solution meilleure qu’une autre, respectez une règle logique de numérotation. (par exemple, pour le menu 1, commencer à 100, puis de 5 en 5, pour le menu 2, commencer à 200, etc., à vous de voir en fonction de l’architecture de votre application).

Dans le fichier d’aide, il nous faut maintenant déclarer les couples Topic/ HelpContextID
Ceci s’effectue par un fichier de type .h (Header File).

Avec n’importe quel éditeur de texte, écrire le fichier de correspondance suivant l’exemple ci-dessous :

Colonne Fichier_Topic_html : nom exact du fichier topic html SANS extension
Colonne HelpContextID : numéro du ContextID associé

Exemple :

#define Fichier_Topic_html HelpContextID
#define IDH_INDEX_GENERAL   1
#define IDH_INFOS_GENERALES 10
#define IDH_MOT_PASSE       20
#define IDH_FILE_MENU       100
#define IDH_HELP_OPEN       110
#define IDH_HELP_SAVE       120
#define IDH_HELP_RESTORE    130
#define IDH_HELP_COMPACT    135
#define IDH_HELP_IMPRIMER   140
#define IDH_HELP_QUITTER    150
#define IDH_CONFIG_MENU     200
#define IDH_CONFIG_PROGRAM  210
#define IDH_CONFIG_SYSTEM   220
#define IDH_CARTE_PMAC      230
#define IDH_CODES_OP        240

etc.

Enregistrer le fichier au format texte brut.

Dans le projet html help, ajouter le fichier .h que vous venez de créer :

- Cliquer sur « HtmlHelp API Information »
- Dans l’onglet « Map », cliquer sur « Header File… »
- Sélectionner le fichier .h
- Cliquer sur « OK »
- Compiler le projet

Remplissez les propriétés HelpContextID des contrôles de votre application et appuyez sur F1 !!

IV-4 - C’est fini !

Voilà, vous savez « presque » tout sur Html Help Workshop, bon courage à tous

L’aide HTML étant, comme son nom l’indique, basée sur des fichiers html, vous pouvez l’agrémenter, suivant votre inspiration, par des feuilles de style .css
Ceci ne fait pas partie de ce tutoriel, et réfère au langage html

Vous pouvez me faire part de vos commentaires, critiques et remarques par MP à ThierryAIM

V - Téléchargements

Un exemple de projet d’aide.

Un exemple de Source Visual Basic 6 appelant un fichier d’aide.

Un exemple de Source VBA appelant un fichier d’aide dans un projet Excel.

La dernière version de l’atelier de création Microsoft HTML Help Workshop.