Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-12-2003
doverzhoff doverzhoff is offline
Miembro
 
Registrado: ago 2003
Posts: 20
Poder: 0
doverzhoff Va por buen camino
Simular click en otra aplicacion(es)

Hola a todos!!!

Espero se encuentren bien y antes que nada les deseo una feliz navidad y un prospero año nuevo.

Tengo una duda y espero me puedan ayudar: Como puedo (si se puede) simular un click en una aplicación que no es mía, que ni siquiera he visto el código, por ejemplo simular un click del numero 1 (o cualquier botón) en la calculadora de windows, o por ejemplo poner el foco en un edit de la otra aplicación y escribir en él; todo esto desde mi aplicación.
P.D. Siempre busco en el historial antes de preguntar algo, pero esta vez no encontre nada.

Bueno, me despido envialdoles un cordial saludo...

dvz
Responder Con Cita
  #2  
Antiguo 16-12-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Creo que lo mejor es que busques la ventana indicada y el botón correspondiente (FindWindow, EnumWindows, EnumChildWindows), y le envíes el mensaje WM_LBUTTONDOWN.
También te recomiendo este hilo: http://www.clubdelphi.com/foros/show...&threadid=6010

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 16-12-2003
Avatar de acertij022
acertij022 acertij022 is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina-Bs. As.
Posts: 233
Poder: 21
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
  #4  
Antiguo 22-12-2003
doverzhoff doverzhoff is offline
Miembro
 
Registrado: ago 2003
Posts: 20
Poder: 0
doverzhoff Va por buen camino
Una pregunta más:
¿FindWindow, EnumWindows, EnumChildWindows tambien sirve para paginas de Internet?
Por ejemplo, me comentaron de un programa que revisa que unas pc's que estan en red esten trabajando bien (por ejemplo, puede que el cable se desconectó, etc), para esto, el programa manda un mensaje a una pc y si no se recibe una respuesta el programa entra a una pagina de internet para mandar un mensaje a un localizador con el nombre de la pc que tiene problemas y así poder dar solución mas rapido al problema.

Bueno, lo que deseo saber concretamente es: una vez abierto el navegador de internet y estando en la página requerida, introducir el texto y el numero del radiolocalizador en sus respectivos campos, y pulsar el botón "enviar", claro todo esto desde un programa en Delphi.

Espero haberme explicado bien, y ojalá puedan ayudarme.

"Que tengan todos una feliz Navidad y el próximo año este lleno de dicha para todos ustedes. Aprovecho tambien para agradecer la gran ayuda que nos brindan a los novatos en este amplio mundo de la programación y Delphi.
SINCERAMENTE, MUCHAS GRACIAS"

dvz
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:58:11.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi