| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
edwinhp2 Lt JG

Registrado: 19 Nov 2005Mensajes: 67
|
Publicado: Dom 13 Sep, 2009 3:51 am Asunto: Detectar ventanas creadas con GetDesktopWindow |
|
|
Hola compañeros, estoy realizando una opción de captura de los clientes de forma independiente, es decir, que cuando le de nuevo me abra una nueva ventana, me basé de la siguiente liga:
[url]
https://cppbuilder.es/viewtopic.php?t=8280&highlight=getdesktopwindow[/url]
Ahora cuando se cierre la sesión del usuario se deben cerrar estas ventanas que fueron creadas de la forma anterior.
¿ Alguien sabe como ?
Gracias por el apoyo |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 13 Sep, 2009 4:14 am Asunto: |
|
|
Lo que necesitas saber es como detectar que se está cerrando la sesión? Si es así lo que tienes que hacer es interceptar los mensajes WM_QUERYENDSESSION y WM_ENDSESSION. En el siguiente post tienes un ejemplo:
https://cppbuilder.es/viewtopic.php?t=8574 |
|
| Volver arriba |
|
 |
edwinhp2 Lt JG

Registrado: 19 Nov 2005Mensajes: 67
|
Publicado: Dom 13 Sep, 2009 1:47 pm Asunto: |
|
|
Gracias por la pronta respuesta _Leo, entiendo que la detección de estos mensajes es cuando se está cerrando la sesión de la computadora, lo que quiero es implementar una sesión dentro de mi aplicación, simulando que cuando el usuario entra en el programa se autentique para que se le habilite ciertas opciones y cuando de le un botón se cierre todas las ventanas creadas pero le permita volver a iniciar sesión, por eso quisiera cerrar todas las ventanas creadas en el programa.
Espero haberme explicado.
Saludos y gracias !!! |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 13 Sep, 2009 7:24 pm Asunto: |
|
|
| Cuando cierras la ventana principal (la que ha creado todas las demás) no se cierran todas (o bien usando Application->Terminate()) ? |
|
| Volver arriba |
|
 |
edwinhp2 Lt JG

Registrado: 19 Nov 2005Mensajes: 67
|
Publicado: Dom 13 Sep, 2009 10:12 pm Asunto: |
|
|
si se cierran _Leo, lo que intento hacer es que cuando empieze el programa todas las opciones estén deshabilitadas, el usuario tiene que dar click en el botón de iniciar sesión y todas las opciones se habilitan, despues creo ventanas con padre el desktop y después cuando pulse el usuario cerrar sesión para que se deshabilite todas las opciones, se cierren todas las ventanas hijas, pero el programa quede vivo para que se puede iniciar sesión otra persona.
Espero haberme explicado mejor :) |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Dom 13 Sep, 2009 11:20 pm Asunto: |
|
|
Sigo sin enterarme bien de lo que te falta.. pero si lo que quieres es cerrar todas las ventanas de un tipo determinado.. Suponiendo que en "TForm2" es donde estas usando lo del "CreateParams" y quisieras cerrar todas las instancias de la misma, podrías hacerlo así:
| Código: | for (int i = 0; i < Screen->FormCount; i++)
if (Screen->Forms[i]->ClassNameIs("TForm2"))
Screen->Forms[i]->Close();
|
|
|
| Volver arriba |
|
 |
edwinhp2 Lt JG

Registrado: 19 Nov 2005Mensajes: 67
|
Publicado: Lun 14 Sep, 2009 12:19 am Asunto: |
|
|
_Leo,
era exactamente lo que buscaba, mil gracias como siempre !!!
:) |
|
| Volver arriba |
|
 |
|