[simulateClick] Funcion que simula el dar un click con el raton usando la api de windows y la version de delphi 2010
Código (delphi) [Seleccionar]
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.