Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Enviar tecla a una ventana (https://www.clubdelphi.com/foros/showthread.php?t=58130)

Omega 09-07-2008 20:28:46

Enviar tecla a una ventana
 
Hola. Soy nuevo en este foro y tengo una duda, haber si me la aclaráis.

¿Es posible con Delphi enviar pulsaciones a una ventana aunque el foco este en otra?

PD: No sabia muy bien en que subforo poner esto, pero de ser posible creo que es con la API.

Saludos y gracias.

coso 09-07-2008 21:46:31

hola,
este tema se ha tratado varias veces. Si haces una busqueda por el foro seguramente encontraras algo que te interese. Saludos

Omega 10-07-2008 17:26:00

Hola, soy de usar el buscador y ya estuve mirando varios temas pero no me queda claro.

Lo que quiero hacer es enviar ENTER a una aplicación, para ello se que primero hay que obtener la ventana que es y luego enviar el ENTER, he estado haciendo pruebas y nada. Esto es lo que llevo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var h: Cardinal;
begin
 h := FindWindow(nil,'a.txt - Bloc de notas');
 if h <> 0 then begin
  SendMessage(h, WM_KEYDOWN, VK_RETURN, 0);
 end
 else
 begin
  showmessage('No se encuentra la ventana');
 end;
end;

Edito: Había 2 linea que no servían para nada y una cosa que me había comido. jeje

Saludos y gracias.

coso 10-07-2008 17:54:45

Hola de nuevo

Tu codigo funciona correctamente : si creas una aplicación destino con un boton 'default' y haces que este codigo te apunte alla, te lo pulsa. El problema debe ser que el notepad.exe da el foco o bien al menu o bien a algun otro componente cuando no esta activado.

saludos

Omega 10-07-2008 18:13:08

He hecho un simple programa con un botón que al pulsarlo suelta un mensaje y tampoco va. ¿Seguro que mi código esta bien? =S

coso 10-07-2008 18:18:38

Si, perdona. Use el PostMessage (estaba haciendo pruebas) en vez del SendMessage, y el boton en default.

Omega 10-07-2008 18:51:09

Ya funciona, aunque con la aplicación original con la que hice de prueba no =S pero bueno...

Ahora solo me queda la segunda parte, pulsar tres teclas a la vez. Voy a hacer pruebas :D

Gracias.


La franja horaria es GMT +2. Ahora son las 16:25:18.

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