FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con el WMQueryEndSession
Hola, teniendo el siguiente ejemplo ...
da igual que yo le mande cerrar la sesion, apagar o reiniciar ... el showmessage me muestra que el valor siempre es 0, con lo que siempre me cierra la sesion. Alguna idea de por que pasa esto? Un saludo. PD: falta un trocito de codigo que pone el 2: //Que hemos terminado de realizar el proceso, pero eso no es importante ... trabajo con delphi7 y win2000, pero en xp tambien me pasa. |
#2
|
||||
|
||||
No entiendo bien en qué forma planeas usar el Msg.Source pero haciendo algunas pruebas me parece que Delphi tiene un pequeño bug. La declaración de TWMQueryEndSession es:
pero la documentación en el SDK de Windows dice: Cita:
Aunque no lo puedo asegurar, parece ser corroborado por esta prueba:
siempre muestra el segundo mensaje. Pero si pongo
sí me pone el primer mensaje cuando intento cerrar la sesión. Esto, con Delphi 7. // Saludos |
#3
|
|||
|
|||
hola, ante todo gracias por contestar
Hola, ante todo, gracias por contestar. Tengo un messenger corporativo de la empresa, que se arranca cuando se inicia la sesion. Entonces, intento conseguir que cuando alguien cierre la sesion o apaga el ordenador, se guardan unos valores en unas tablas.
Por lo que intento capturar ese cierre de sesion o apagado, hago mis cosas y sigue cerrandose o apagandose
Para eso intento utilizar el endsessionflags que ha capturado el mensaje que han mandado de cerrar o apagar. Pero el problema es q siempre me cierra la sesion .... nunca me apaga ... aun cambiando por "Msg.Unused". Un saludo |
#4
|
||||
|
||||
Hola,
No entiendo por qué intentas este mecanismo. ¿No te basta guardar los valores que mencionas en cuanto recibes por primera vez el mensaje? ¿Por qué quieres hacerlo por partes? Piensa que eso puede complicar las cosas porque tu aplicación no será la única involucrada en el proceso de cierre del sistema. Otras aplicaciones pueden incluso detener el proceso y tu aplicación lo está forzando. // Saludos |
|
|
|