Ich habe mal ein kleines Testprogramm gemacht,
das funktioniert so:
Man klickt Button2 an, 3 Sek. später wird Button1 ausgelöst.
(Button1 hat die Dimension 100 x 100)
Delphi-Quellcode:
procedure MoveMouseIntoControl(AWinControl: TControl);
var rtControl: TRect;
begin
rtControl := AWinControl.BoundsRect;
MapWindowPoints(AWinControl.Parent.Handle, 0, rtControl, 2);
SetCursorPos(rtControl.Left + (rtControl.Right - rtControl.Left) div 2,
rtControl.Top + (rtControl.Bottom - rtControl.Top) div 2);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Sleep(3000);
MoveMouseIntoControl(Button1);
mouse_event(MOUSEEVENTF_LEFTDOWN, 50, 50, 0, 0);
Sleep(50);
mouse_event(MOUSEEVENTF_LEFTUP, 50, 50, 0, 0);
Application.ProcessMessages;
end;