Visual Basic - Ventanas Activas

Life is soft - evento anual de software empresarial
 
Vista:

Ventanas Activas

Publicado por Ing. Francisco García Viera (5 intervenciones) el 03/04/2001 05:49:22
Hi, colegas:

Me encuentro diseñando una aplicación en VB y he necesitado controlar el tamaño de los formularios mediante código y lo he logrado; es decir, puedo enviarlos a la barra de tareas, maximizarlos, etc. Cuando tengo en una aplicación varios formularios, he podido saber cuál formulario está activo; sin embargo, mi duda es esta:

Si estoy corriendo mi aplicación en un formulario dado, y el usuario abre una ventana cualquiera que no sea de mi aplicación, tal como la calculadora o el paint, inmediatamente esta ventana se hace activa y la mia, piedre el foco. ¿Puede alguien ayudarme con un código o consejo que me diga cómo puedo saber cuando mi ventana está activa y cuando no, como para poder, si quiero, minimizarla en ese momento?

Me parece que esto debe ser a través de las API´s del windows, pero ¿cómo lo puedo programar en Vbasic pora estar en disposición de "atrapar" este suceso de que mi ventana pasa a ser no activa?

Tal vez mi pregunta no es clara pero puedo mejorarla con vuestra ayuda.

Estaría muy, pero que muy agradecido, si me ayudan a saltar esta laguna...

Con todo agradecimiento...

Francisco
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ventanas Activas

Publicado por Ing. francisco garcía Viera (5 intervenciones) el 05/04/2001 07:09:30
Hola, amigo Juan Carlos:

Ante todo darte las gracias por tu rápida respuesta a mi solicitud. Sin embargo, sigo con el problema pues deactivate solo desencadena eventos cuando el enfoque se mueve dentro de la misma aplicación y yo necesito saber esto:

Supón que está corriendo mi aplicación en Vbasic, y el usuario abre, digamos, la calculadora o el paint sin cerrar mi aplicación. En ese instante mi aplicación pierde el foco y la activa es la que acabo de abrir (calculadora o pint). ¿Cómo puedo conocer desde código, que mi aplicación no es la ventana activa de windows en ese instante? Si me pudieras enviar el código, sería excelente. Por favor, para mi es importante.

Te ruego que la respuesta me la enviaras también a: [email protected]
pues no siempre tengo el acceso a INTERNET.

Gracias mil, y desde ya sé que cuento con tu ayuda...

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ventanas Activas

Publicado por patricia (4 intervenciones) el 09/04/2001 03:27:18
Quiero ver si te entiendo: tu lo que quieres es que cuando alguien abra otra aplicación, la tuya pase a segundo plano y cuando se cierre la que recien se abrio, la tuya quede activa de nuevo?
Si es asi, tu lo debes saber, cuando se abre una aplicación distinta a la tuya, (por ej. calculadora)tu aplicación o pasa a la barra de tareas o pasa a segundo plano. Pero puedes manejarte con lost_focus(pierde el foco) o got_focus(recupera el foco) Si puedes cuentame un poquito mejor y si puedo, te ayuda. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ventanas Activas

Publicado por Ing. Francisco garcía Viera (5 intervenciones) el 10/04/2001 03:45:43
Hola, Patricia: es un placer recibir tu ayuda, pero aquí te va mi problema:

Está claro para mi que cuando yo tengo una aplicación abierta, cualquiera sea (incluyendo la que yo haya creado en Vbasic) y se abre otra, esta, la mia, pasa automáticamente a un segundo plano; es decir, pierde el foco, y la ventana activa es la recién abierta hasta que se decida lo contrario. De eso se encarga el Windows.

Ahora bien, lo que yo quiero es un código para Vbasic que me permita "capturar" en mi aplicación cuando se está en tiempo de ejecución, que ella ha dejado de ser la activa para Windows porque se abrió otra.

En un ejemplo: Supón que mi aplicación en Vbasic esta corriendo y abro la calculadora. Pues bien, yo quiero que en ese instante en que se abre la calculadora y la mia pierde el foco, que la mia pase a la barra de tareas, o emita un sonido, o cualquier otra cosa. Para ello necesito algo en mi código en Vb para poder "atrapar" este suceso. ¿entiendes?.

Esto yo lo hago con get y lostfocus pero cuando son objetos dentro de mi misma aplicación; es decir, por ejemplo, cuando un formulario pierde el foco por otro pero dentro de la misma aplicación. Sin embargo, creo que para lo que te pido, hay que trabajar con las api´s del windows, pero ¿cómo?.

Saludos....

Ing. Francisco García Viera.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ventanas Activas

Publicado por ing. mario torres (2 intervenciones) el 21/04/2001 10:01:43
existe una API de windows llamada setwindowactive que te indica cual es la ventana activa actualmente, asi que podrias detectar el evento cuando tu ventana pierde el foco y determinar cual es la ventana ( o aplicacion activa) activa (va a ser diferente de la tuya).

espero que te sirva.

puedes ver un ejemplo en la pagina VBZONE
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ventanas Activas

Publicado por Ing. Francisco García Viera (3 intervenciones) el 24/04/2001 23:59:30
Bueno, la verdad es que he probado con eso del setwindowactive, pero...por favor ¿Podrías decirme cómo accedo a VBZONE?, pues no sé lo que es...

saludos Francisco.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar