Ver Mensaje Individual
  #3  
Antiguo 16-12-2003
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Reputación: 22
acertij022 Va por buen camino
A través de este código, podras programar tu raton, para que se mueva y pulse cualquier botón automaticamente.
procedure TFrmPrincipal.ClickBotonIzquierdo(X, Y: Integer);
// Esta rutina sirve para hacer un click en las coordenadas
// X-Y de la pantalla.
var
ClientX, ClientY: Integer;
Window, Parent: HWnd;
WindowRect: TRECT;
begin
// Primero situa el cursor del ratón en la posición deseada
SetCursorPos(X, Y);

// Averiguamos el identificador del objeto que se encuentra
// en dichas coordenadas. (No funciona para ventanas ocultas
// o deshabilitadas)
Window := WindowFromPoint(Point(X, Y));

// Si el identificador devuelto es distinto de 0 es que
// realmente hay un objeto en dichas coordenadas
if (Window <> 0) then begin
// Averiguamos las coordenadas del objeto
GetWindowRect(Window, WindowRect);

// y trasladomos las coordenadas del punto donde se desea
// hacer click a las coordenadas del objeto encontrado
ClientX := X - WindowRect.Left;
ClientY := Y - WindowRect.Top;

// Ahora averiguamos si el objeto tiene padre, por ejemplo,
// si el objeto es un botón o una lista
Parent := GetAncestor(Window, GA_ROOT);

// Si el objeto no tiene padre, es que es una ventana. Si
// tiene padre (una ventana), utilizamos este, ya que el
// mensaje debe pasarse a una ventana.
if (Parent = 0) then
Parent := Window;

// Comprobamos que la ventana esta en primer plano, es decir,
// que es la ventana activa. Si no es así, la activamos
if (Parent <> GetForegroundWindow()) then begin
SetForegroundWindow(Parent);
end;

// Y ahora le enviamos a la ventana los mensajes correspondientes
// para obtener un click del ratón
SendMessage(Window, WM_LBUTTONDOWN, MK_LBUTTON, ClientX or (ClientY shl 16));
SendMessage(Window, WM_LBUTTONUP, 0, ClientX or (ClientY shl 16));
end;
end;


Espero que te sea util
Responder Con Cita