Delphi 5.0: Mausbewegung emulieren

Ich habe folgendes Problem:

Ich will nach einem beliebigen Ereignis den Mauszeiger um x/y Pixel verschieben (Also so als wenn man die Maus bewegt hätte) und irgendwann nach einen beliebigen Ereignis einen MausKlick ausführen lassen. Mit welchem Befehl kann man solche Mausaktionen emulieren ?

Da muss du wohl was basteln. Hier einige Befehle, die bestimmt helfen:

setcursorpos(10,100);
(setzt den Mauszeigerbezogen auf den Screen, nicht aufs Formular)
Allerdings springt der Zeiger da quasi dorthin - er bewegt sich nicht über das ganze Bild - das muss du irgendwie selber basteln)

Zum Mausclick-Simulieren 3 Möglichkeiten:
(die letzte bietet glaub’ ich auch eine Mausbewegoption an)

Mausklick Simulieren

procedure TForm1.Button2Click(Sender: TObject);
begin
  SendMessage(Button1.Handle,WM_LBUTTONDOWN,MK_LButton,0);
  Sleep(300); //damit man es auch sieht
  SendMessage(Button1.Handle,WM_LBUTTONUP,MK_LButton,0);
end;


Mausklick simulieren

var CursorPos: TPoint;
WinHandle: HWND;
LongParam: Integer;
begin
GetCursorPos(CursorPos); //fragt die Cursorposition ab
WinHandle := WindowFromPoint(CursorPos);
//–>liefert das Fenster, das genau unter der aktuellen Cursorposition liegt
Windows.ScreenToClient(WinHandle, CursorPos);
//–>Umwandeln der Bildschirmkoordinaten in Koordinaten relativ zum Fenster
LongParam := CursorPos.x + CursorPos.y shl 16;

//und jetzt dem Fenster sagen, dass es angeklickt wurde :wink:
SendMessage(WinHandle, WM_LBUTTONDOWN, 0, LongParam);
SendMessage(WinHandle, WM_LBUTTONUP, 0, LongParam);
end;


Mausklick simulieren

var i:integer;
begin
i:=0;
while i