type
TINPUT = record
Tipo: DWORD;
case integer of
0:(mi: TMOUSEINPUT;);
1:(ki: TKEYBDINPUT;);
2:(hi: THARDWAREINPUT;);
end; PTINPUT = ^TINPUT;
function MouseClick(x: DWORD; y: DWORD): DWORD;
var
P: TPoint;
VInput: array [0..1] of TINPUT;
begin
GetCursorPos(P);
SetCursorPos(x, y);
ZeroMemory(@VInput, sizeof(VInput));
VInput[0].tipo:= INPUT_MOUSE;
VInput[0].mi.dx:= x;
VInput[0].mi.dy:= y;
VInput[0].mi.dwFlags:= MOUSEEVENTF_LEFTDOWN;
VInput[1].tipo:= INPUT_MOUSE;
VInput[1].mi.dx:= x;
VInput[1].mi.dy:= y;
VInput[1].mi.dwFlags:= MOUSEEVENTF_LEFTUP;
Result:= windows.SendInput(2, tagINPUT(VInput[0]), sizeof(TINPUT));
SetCursorPos(P.x, P.y);
end;