Código
uses SysUtils,windows; //Simula el click del raton //parametros //integer x,y: coordeandas donde queremos hacer click //Result: retornar cuantos eveentos fueron ejectuados en este caso 2 function simulateClick(const x,y:Integer):Integer; var point:TPoint; input:array[0..1]of TInput; begin GetCursorPos(point); //gurdamos coordenadas actuales SetCursorPos(x,y); //colocamos el puntero en la posicion seleccionada ZeroMemory(@input,sizeof(input)); //rellenamos de ceros el arreglo de TInput //configuramos el evento para oprimir con el boton izquierdo del raton input[0].Itype:=INPUT_MOUSE; input[0].mi.dx:=x; input[0].mi.dx:=y; input[0].mi.dwFlags:=MOUSEEVENTF_LEFTDOWN; //configuramos el evento para soltar el mouse con el boton izquierdo del raton input[1].Itype:=INPUT_MOUSE; input[1].mi.dx:=x; input[1].mi.dx:=y; input[1].mi.dwFlags:=MOUSEEVENTF_LEFTUP; //Ejecutamos los dos eventos anteriores Result:=SendInput(2,tagInput(input[0]),sizeof(TInput)); //Restauramos las coordenadas originales(simula que no se movio el raton) SetCursorPos(point.X,point.Y); end; //Imprime la posicion X y Y actual del cursor //conveniente usarlo dentro de un while inifito para saber las coordenadas //al momento de mover el raton procedure printPosition; var point:TPoint; begin GetCursorPos(point); Writeln(point.X,' x ',point.Y); end; //Main del programa begin simulateClick(20,882); Writeln('Click simulado'); end.