![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#3
|
||||
|
||||
|
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 ![]() |
|
|
|