Voici comment récupérer les actions exécutées par la souris sur n'importe quelle fenêtre Windows (à la différence de la fonction Windev "Evénement" qui n'est active que sur les fenêtres Windev) :
Dans les déclarations globales de la fenêtre "maFenetre" :
Dans le code d'initialisation de la fenête "maFenetre" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 CONSTANTE WH_MOUSE_LL = 14 WM_LBUTTONDOWN = 513 WM_LBUTTONUP = 514 WM_RBUTTONDOWN = 516 WM_RBUTTONUP = 517 WM_MOUSEMOVE = 512 WM_MOUSEWHEEL = 522 FIN iHook est un entier système = 0
On crée un "Hook" Windows :
Dans le code de fermeture de la fenête "maFenetre" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 iHook = API("user32","SetWindowsHookExA",WH_MOUSE_LL,&MouseEvent,Instance(),0)
On détruit le "Hook" Windows :
Dans le code de la fonction MouseEvent locale à la fenêtre "maFenetre" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 API("user32","UnhookWindowsHookEx",iHook)
Bonne prog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 PROCEDURE MouseEvent(iIdHook est un entier,wParam est un entier,iLParam est un entier) SELON wParam //Bouton gauche enfoncé CAS WM_LBUTTONDOWN //513 Trace("Bouton gauche enfoncé") //Récupérer le handle de la fenêtre Windows cliquée strPOINT est une structure x est un entier y est un entier FIN stPoint est une strPOINT stPoint.x = PoidsFaible(CurseurPos(cpEcran)) stPoint.y = PoidsFort(CurseurPos(cpEcran)) iHandle est un entier système iHandle = API("USER32","WindowFromPoint",stPoint) Trace(iHandle+" | "+SysFenTitre(iHandle)) //Bouton gauche relaché CAS WM_LBUTTONUP //514 Trace("Bouton gauche relaché") //Bouton droit enfoncé CAS WM_RBUTTONDOWN //516 Trace("Bouton droit enfoncé") //Bouton droit relaché CAS WM_RBUTTONUP//517 Trace("Bouton droit relaché") //Déplacement souris CAS WM_MOUSEMOVE //512 Trace("Déplacement souris") //Roulette souris CAS WM_MOUSEWHEEL //522 Trace("Roulette souris") FIN![]()
Partager