thorod
Messages postés2Date d'inscriptionmercredi 7 mai 2003StatutMembreDernière intervention17 août 2004
-
17 août 2004 à 14:49
grouzieres
Messages postés8Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention19 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à !) ?
grouzieres
Messages postés8Date d'inscriptionvendredi 13 août 2004StatutMembreDernière intervention19 août 20041 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.