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)
-   -   Acceso a otra aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=91946)

kalimero 08-06-2017 07:51:10

Acceso a otra aplicacion
 
Hola a todos.
Me gustaria saber si es posible saber desde una aplicacion en ejecucion cual es el control activo de otra.
Gracias de antemano.

kalimero 08-06-2017 10:50:02

El asunto es que estoy intentado enviar un postmessage a otra aplicación pero tiene que ser al control que tenga el foco en ese momento en la otra aplicacion.
No se si sera posible.
Gracias

roman 08-06-2017 16:00:36

Pues, supongo que se puede. Para enviar un mensaje a un control sólo tienes que saber su Handle y ése lo puedes buscar con una combinación de FindWindow y FindWindowEx pero la forma exacta en que uses estas funciones de la API de Windows dependerá de la manera en que estén acomodados los controles de la otra aplicación.

LineComment Saludos

kalimero 08-06-2017 16:42:17

Hola Roman.
Gracias por responder.
El tema es que se trata de un teclado que he desarrollado.Pero claro,el control sobre el que mando la pulsacion de
la tecla con sendmessage cambia segun se posicione el usuario.Si cierro el teclado y lo vuelvo a abrir funciona porque le puedo
manda el handle del control que en ese momento tiene el foco pero me gustaria que el teclado supiera antes de envial la
pulsacion de la tecla a que control debe mandar.
Gracias

bitbow 08-06-2017 17:03:22

Intenta hacer una emulacion de teclado (con esto mandas las teclas al sistema directamente).

Saludos.

kalimero 08-06-2017 17:05:14

Algun ejemplo?
Gracias de antemano

roman 08-06-2017 17:29:55

Cita:

Empezado por kalimero (Mensaje 517933)
Si cierro el teclado y lo vuelvo a abrir funciona porque le puedo
manda el handle del control que en ese momento tiene el foco

:confused: No entiendo. Si sabes cómo hallar este handle, igual lo puedes hacer antes de mandar la pulsación aunque ya esté abierto el teclado.

LineComment Saludos

kalimero 08-06-2017 17:36:48

Hola.
Me explico.
Desde la aplicacion App.exe ejecuto Teclado.exe pasandole como parametro el handle que tiene el foco en ese momento el formulario de turno de App.exe.
Si el usuario cambia el foco a otro componente en App.exe el teclado no escribe porque no tiene el handle de ese nuevo control con el foco.
Busco una manera de que Teclado.exe se entere que en App.exe ha cambiado el foco a otro control y por lo tanto debe escribir en otro sitio.
Espero haberme explicado.
Gracias.

escafandra 10-06-2017 00:52:16

¿No te sirve GetFocus?

Saludos.

roman 12-06-2017 17:20:06

Cita:

Empezado por escafandra (Mensaje 518021)
¿No te sirve GetFocus?

¿No sé si antes de GetFocus tendría que usar AttachThreadInput?

LineComment Saludos


La franja horaria es GMT +2. Ahora son las 05:53:32.

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