C'est bien avec
mouse_event(MOUSEEVENTF_MOVE) qu'il faut notifier le mouvement. Il n'y a pas de message souris avec
SetCursorPos. Attention cependant, le mouvement réel en relatif dépend aussi de l’accélération de la souris définie au niveau OS. Pour de la précision, il faut passer par des coordonnées absolues
mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE) et calculer la position en
mickey et non en pixel.
Pour un mouvement de 100px :
Mouse_Event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_MOVE, (Mouse.CursorPos.X +100) *65535 div screen.Width, Mouse.CursorPos.Y *65535 div screen.Height, 0, 0);
En
mickey, la position 0/0 correspond au coin supérieur gauche
de l'écran principal et 65535/65535 au coin inférieur droit. Dans un environnement multi-moniteur, il faut encore spécifier
MOUSEEVENTF_VIRTUALDESK pour que la position 0/0 corresponde au coin supérieur gauche
du bureau et évidemment 65535/65535 à son coin inférieur droit.
Partager