Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Simuler un clic gauche souris Mar 5 Oct 2021 - 1:00 | |
| Bonjour à tous ! Voici un exemple de code-source pour simuler un clic gauche souris à un endroit précis dans une application. Dans cette démonstration, je simule le clic souris dans la case (4,2) d’un GRID, puis au bout d’une seconde, dans la case (2,3). Le source est commenté. - Code:
-
dim res%,x%,y%
dll_on "user32"
top 0,325 left 0,432
grid 1 top 1,50 left 1,80
pause 1000
' cliquer dans la cellule 4,2 Cellule(4,2)
pause 1000
' cliquer dans la cellule 2,3 cellule(2,3)
end
sub cellule(ligne%,colonne%) ' placer le curseur souris à l'emplacement à cliquer calculCoordonneesXYCellule(ligne%,colonne%) res% = dll_call2("SetCursorPos",x%,y%)
' appuyer sur le bouton gauche de la souris res% = dll_call5("mouse_event",2,0,0,0,0)
' relacher le bouton gauche de la souris res% = dll_call5("mouse_event",4,0,0,0,0) end_sub
' Calcul des coordonnées absolues x et y de la cellule ciblée sub calculCoordonneesXYCellule(colonneGrid%,ligneGrid%) dim_local n%
' calcul de la position x et y du GRID par rapport à l'écran x% = left(0) + left(1) y% = top(0) + top(1) ' calcul de la postion x et y de la cellule ciblée (avec cumul aux coordonnées précédemment calculées) for n% = 1 to colonneGrid% - 1 x% = x% + grid_one_column_width(1,n%) next n% for n% = 1 to ligneGrid% - 1 y% = y% + grid_one_row_height(1,n%) next n%
' Sous W10 avec un FORM 0 "border_normal", ajout hauteur du bandeau du FORM 0 : 31 pixels y% = y% + 31
' Sous W10 avec un FORM 0 "border_normal", ajout largeur de la bordure du FORM 0 : 8 pixels x% = x% + 8
' correction marge technique : ajout de 10 pixels pour s'assurer d'être bien dans la cellule x% = x% + 10 y% = y% + 10 end_sub
Ce source ne fonctionne que sous Windows et utilise la DLL user32. Bonne programmation !
Dernière édition par Marc le Mar 5 Oct 2021 - 20:43, édité 1 fois | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Re: Simuler un clic gauche souris Mar 5 Oct 2021 - 15:59 | |
| Ouh, là, ça devient de la grande classe ! Bravo, Marc ! | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Simuler un clic gauche souris Mar 5 Oct 2021 - 22:45 | |
| Bonsoir à tous ! Voici une variante du code-source ci-dessus utilisant la DLL KGF.DLL de Klaus : - Code:
-
dim res%,x%,y%
dll_on "kgf"
top 0,325 left 0,432
grid 1 top 1,50 left 1,80
pause 1000
' cliquer dans la cellule 4,2 Cellule(4,2)
pause 1000
' cliquer dans la cellule 2,3 cellule(2,3)
end
sub cellule(ligne%,colonne%) ' placer le curseur souris à l'emplacement à cliquer puis clic gauche souris calculCoordonneesXYCellule(ligne%,colonne%) res% = dll_call2("MouseLeftClick",x%,y%) end_sub
sub calculCoordonneesXYCellule(colonneGrid%,ligneGrid%) dim_local n%
' calcul de la position x et y du GRID dans le FORM 0 x% = left(1) y% = top(1)
' calcul de la postion x et y de la cellule ciblée (avec cumul aux coordonnées précédemment calculées) for n% = 1 to colonneGrid% - 1 x% = x% + grid_one_column_width(1,n%) next n% for n% = 1 to ligneGrid% - 1 y% = y% + grid_one_row_height(1,n%) next n%
' correction marge technique : ajout de 10 pixels pour s'assurer de bien cliquer dans la cellule x% = x% + 10 y% = y% + 10 end_sub
Bonne soirée ! | |
|
Contenu sponsorisé
| Sujet: Re: Simuler un clic gauche souris | |
| |
|