Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 06-12-2005
Carlos Hurtado Carlos Hurtado is offline
Miembro
 
Registrado: dic 2004
Posts: 30
Poder: 0
Carlos Hurtado Va por buen camino
Windows no cierra mientras no se cierre aplicacion

Hola amigo no se si te servira esta rutina sacada de Trucomania:



Cuando el usuario sale de Windows teniendo nuestra apliacación abierta, es posible que la pille en un mal
momento (sin grabar datos, en medio de un proceso, etc). Esto se puede evitar capturando el mensaje que envia
Windows a todas las apliacaciones cuando el usuario quiere cerrar Windows: el mensaje
WM_QUERYENSESSION

Para capturar el mensaje y enviarlo a nuestro código de tratamiento del mensaje:


Código Delphi [-]
 
     TForm1 = class(TForm)
     ..........
       private
         procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
     ..........
     end;

Es decir, basta con que añadamos en la claúsula Private de la declaración del form la siguiente linea:

Código Delphi [-]
 
    procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;

y luego, en la parte implementation, ponemos el código que trate el mensaje:

Código Delphi [-]
 
 
     procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
     begin 
       MessageBox(Handle, 'Cierra antes el programa', nil, MB_OK);
       Msg.result := 0;
     end;


Si en lugar de abortar el cierre de Windows, queremos que siga realizandose, basta con que cambiemos el

Código Delphi [-]
Msg.result:=0 por Msg.result:=1.

NOTA: El comportamiento del mensaje difiere en win98 y WinNT, así que mirate la ayuda del mensaje
WM_QUERYENDSESSION.


Saludos
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 06:57:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi