En VB, poser un Hook sur une appli commerciale

Résolu
thorod Messages postés 2 Date d'inscription mercredi 7 mai 2003 Statut Membre Dernière intervention 17 août 2004 - 17 août 2004 à 14:49
grouzieres Messages postés 8 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 19 août 2004 - 19 août 2004 à 09:38
Bonjour à tous,

Je vais essayer d'être clair (c'est pas gagné)
Nous avons une appli commerciale.
Je dois ecrire une appli (en VB si possible) qui déclenche un traitement à la perte de focus d'un champ de l'appli commerciale.

Est-ce que je peut poser (en vB) un hook sur un message systeme provenant d'une autre appli (pas en VB celle-là !) ?

D'avance merci pour vos réponses.

Thorod

1 réponse

grouzieres Messages postés 8 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 19 août 2004 1
19 août 2004 à 09:38
Salut,

Ce que tu demande est possible. Nous l'avons fait.

Notre application est en VB principalement. Par contre, la hook est en C.

L'outil Spy++ de Visual Studio 6 permet de récupérer les positions, les messages envoyés (Par ex. WM_COMMAND) et les Handles des fenêtres/contrôles.

Pour t'aider, voici deux hook à mettre en place.
//Création de la hook sur les messages mis en file de messages
SetWindowsHookEx(WH_GETMESSAGE,(HOOKPROC)GetMsgProc, hInstance,0L)
//Création de la hook sur l'interception d'un message avant envoi à la "fenêtre"
SetWindowsHookEx(WH_CALLWNDPROC,(HOOKPROC)CallWndProc, hInstance,0L)

Les fonctions GetMsgProc et CallWndProc recoivent des paramètres dont le message. Cela t'aidera à intercepter le LostFocus.
Pour plus de détail sur ces fonctions, cf. site http://www.mentalis.org/apilist/s.shtml.

Bon courage. ;)
3
Rejoignez-nous