Comunicarse con ventana de aplicacion externa

22/10/2007 - 16:52 por Robert Barreiro | Informe spam
Que tal muchachos? Tengo la siguiente duda:

Tengo una aplicacion desarrollada en VB6 la cual invoca a una aplicación
externa que yo desarrollé, la cual esta desarrollada en C# 2005. Hasta ahi
todo bien; ahora resulta que desean que la aplicacion en C# pueda
comunicarse con la app en VB6 para indicarle que debe actualizar los datos
en pantalla. Para ello el desarrollador de la vieja aplicacion me esta
pidiendo que le envíe un keystroke a la ventana child activa (es un
formulario MDI con ventanas hijas).

Alguien tiene idea de como hacer esto desde C#?


Se agradece profundamente cualquier orientación!!!


Salu :(

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
22/10/2007 - 16:22 | Informe spam
"Robert Barreiro" wrote in message
news:
Tengo una aplicacion desarrollada en VB6 la cual invoca a una aplicación
externa que yo desarrollé, la cual esta desarrollada en C# 2005. Hasta ahi
todo bien; ahora resulta que desean que la aplicacion en C# pueda
comunicarse con la app en VB6 para indicarle que debe actualizar los datos
en pantalla. Para ello el desarrollador de la vieja aplicacion me esta
pidiendo que le envíe un keystroke a la ventana child activa (es un
formulario MDI con ventanas hijas).

Alguien tiene idea de como hacer esto desde C#?




Desde C# puedes usar el método SendKeys.Send(teclas), que funciona de
forma parecida al antiguo SendKeys de VB6. Para ello tendrás que "activar"
previamente la ventana a la que quieres enviar las teclas, cosa que puedes
hacer mediante las APIs de Windows, igual que se hacía antiguamente cuando
querías enviar desde VB6 un SendKeys a otro programa. Desce C# hacia VB6
funciona de la misma manera.
Respuesta Responder a este mensaje
#2 Robert Barreiro
22/10/2007 - 17:36 | Informe spam
Gracias Alberto por la rápida respuesta!


Ahhh okentonces utilizo la vieja y querida SetForegroundWindow? Ecuche
por ahi (o leí mejor dicho) que las ultimas versiones de Windows ponen
algunas restricciones sobre esta funcion, debido a que se abusaba de su
utilizacion. Hay algo de cierto en esto o es puro cuento chino? :S







"Alberto Poblacion"
escribió en el mensaje news:
"Robert Barreiro" wrote in message
news:
Tengo una aplicacion desarrollada en VB6 la cual invoca a una aplicación
externa que yo desarrollé, la cual esta desarrollada en C# 2005. Hasta
ahi todo bien; ahora resulta que desean que la aplicacion en C# pueda
comunicarse con la app en VB6 para indicarle que debe actualizar los
datos en pantalla. Para ello el desarrollador de la vieja aplicacion me
esta pidiendo que le envíe un keystroke a la ventana child activa (es un
formulario MDI con ventanas hijas).

Alguien tiene idea de como hacer esto desde C#?




Desde C# puedes usar el método SendKeys.Send(teclas), que funciona de
forma parecida al antiguo SendKeys de VB6. Para ello tendrás que "activar"
previamente la ventana a la que quieres enviar las teclas, cosa que puedes
hacer mediante las APIs de Windows, igual que se hacía antiguamente cuando
querías enviar desde VB6 un SendKeys a otro programa. Desce C# hacia VB6
funciona de la misma manera.



Respuesta Responder a este mensaje
#3 Alberto Poblacion
22/10/2007 - 20:10 | Informe spam
Ahhh okentonces utilizo la vieja y querida SetForegroundWindow? Ecuche
por ahi (o leí mejor dicho) que las ultimas versiones de Windows ponen
algunas restricciones sobre esta funcion, debido a que se abusaba de su
utilizacion. Hay algo de cierto en esto o es puro cuento chino? :S



No lo he probado, pero me temo que en Windows Vista puede,
efectivamente, haber problemas, porque precisamente por "motivos de
seguridad" impone restricciones al envío de mensajes Windows entre
aplicaciones. Me temo que el tradicional SetForegroundWindow másl envío de
teclas de una aplicación a otra puede ser que no funcione en Vista, aunque
ya te digo que no lo he probado personalmente.
Respuesta Responder a este mensaje
#4 Robert Barreiro
22/10/2007 - 23:48 | Informe spam
Ok, bueno veremos en Vista que pasa. De todas formas por ahora aca usan XP y
funcinóbien de bien.

Muchas gracias por la ayuda Alberto!


Saludos



"Alberto Poblacion"
escribió en el mensaje news:
Ahhh okentonces utilizo la vieja y querida SetForegroundWindow?
Ecuche por ahi (o leí mejor dicho) que las ultimas versiones de Windows
ponen algunas restricciones sobre esta funcion, debido a que se abusaba
de su utilizacion. Hay algo de cierto en esto o es puro cuento chino? :S



No lo he probado, pero me temo que en Windows Vista puede,
efectivamente, haber problemas, porque precisamente por "motivos de
seguridad" impone restricciones al envío de mensajes Windows entre
aplicaciones. Me temo que el tradicional SetForegroundWindow másl envío de
teclas de una aplicación a otra puede ser que no funcione en Vista, aunque
ya te digo que no lo he probado personalmente.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida