Essaye déjà de remplacer
webbrowser1.Handle par
GetForegroundWindow.
Ensuite, ces nombres écrits ainsi 7864320, 32049148 ne sont pas très parlants. En héxa ce serait déjà un peu mieux : $00780000, $01E907FC.
Soit pour :
wParam : $0078 = 120 = un WHEEL_DELTA et $0000 pour aucun bouton enfoncé ;
lParam : y = $01E9 = 489px, x = $07FC = 2044px.
Une façon plus propre d'écrire cela est de passer par la construction des paramètres :
1 2 3
| X := 2044;
Y := 489;
SendMessage(GetForegroundWindow, WM_MOUSEWHEEL, MakeWParam(0, WHEEL_DELTA), MakeLParam(X, Y)); |
Maintenant, il faut savoir que même si ce message est bien envoyé au bon contrôle fenêtré (ce qui n'est pas encore sûr), il faut
obligatoirement que le curseur soit positionné sur ce composant (que X et Y soient corrects). Si la position 2044/489 n'est pas dans la zone de l'élément scrollable/zoomable ça ne fonctionne pas.
lParam n'est en aucun cas une constante.
Il serait à nouveau plus simple de simuler cette molette par
Mouse_Event(MOUSEEVENTF_WHEEL) et laisser l'OS déterminer la fenêtre cible lui-même.
Partager