Pb d'exécution de l'aide par winhelp e VB5

Résolu
Numerinsky Messages postés 3 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 24 mars 2008 - 10 août 2005 à 18:44
Numerinsky Messages postés 3 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 24 mars 2008 - 21 août 2005 à 11:17
Salut à tout le monde,

J'ai créé avec HelpWorkShop un fichier d'aide .HLP que je veux exploiter à partir d'un programe VB5. L'aide contextuelle (les prop. HelpContextID) marche bien avec la touche F1, mais j'ai un problème pour lancer correctement le sommaire de l'aide en cliquant dans un menu Aide (que j'ai ajouté) de la feuille pincipale (une feuille mère MDI en l'occurence). J'ai essayé deux trucs:
- Utiliser l'instruction sendkeys "{F1}" dans la sub MnuAide_click(). Winhelp se lance mais se rend invisible en se plaçant sur le bureau derrière toutes les fenêtres actives ou non.
- Utiliser (dans la même sub) la fonction shell "Winhlp32" suivi du chemin du fichier aide, vbNormalFocus : Winhelp se lance en chargeant le bon fichier mais le curseur de la souris reste en sablier, l'application VB est figée pendant une dizaine de secondes! (notamment la barre de menus est remplacée par une barre blanche).

Si quelqu'un peut m'aider.... un grand merci à lui.

Numerisnky

2 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
10 août 2005 à 19:06
Il existe une source sur le site (je ne sais plus de qui ni comment
elle s'appelle) qui permet d'afficher ce que l'on veut d'un fichier hlp
(sommaire, index, recherche, etc.).



Fais une petite recherche dans les sources, tu devrait la trouver
facilement je pense (développée en VB6, mais elle doit également
fonctionner en VB5).

DarK Sidious

Un API Viewer (pour le VB, VB.NET, C, C# et Delphi) : www.ProgOtoP.com/popapi/
3
Numerinsky Messages postés 3 Date d'inscription dimanche 10 avril 2005 Statut Membre Dernière intervention 24 mars 2008
21 août 2005 à 11:17
Un merci tardif à Dark Sidious,

J'ai effectivement trouvé des sources notamment sur la fonction winhlp32, mais j'ai d'autres Pb. D'abord, Entre VB5 et VB6 ce n'est pas du toout le même HelpWorkShop. En VB5, le ficihier d'aide est au format HLP rédigé à partir de rubriques .rtf; en VB6, on passe au format HTML.
Le format HLP en rtf est une vraie galère, car le compilateur refuse les fichiers .rtf pour un rien et le rtf n'est pas vraiment fait pour la mise en page.

J'ai adopté finalement comme solution mon propre système un peu primitif qui consiste à appeler Internet Explorer avec un Shell en récupérant le contenu de la propriété HelpContextID pour choisir les pages ou signets à afficher. Je réalise mes pages avec Dreamweaver. Seule galère, mMon programme est MDI et hélas, une feuille MDI ne peut pas intercepter la saisie d'une touche et donc pas d'aide par F1 si une feuille fille n'est pas ouverte Je compense par un clic droit qui appelle l'aide.


Bonne journée,


Numérinsky
0
Rejoignez-nous