Ver Mensaje Individual
  #28  
Antiguo 04-04-2016
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Reputación: 11
aguml Va por buen camino
¿Qué es eso del efecto insinuación?
Otra cosa, he estado haciendo pruebas para ver si con lo que me pusiste pasaba por los eventos FormClose y FormCloseQuery y he podido comprobar como cierra la aplicacion sin pasar por ninguno de esos eventos. No se como lo hará entonces.
Así lo he dejado al final:
Código PHP:
void __fastcall TFormMain::WndProc(Messages::TMessage &Message)
{
  switch(
Message.Msg){
    case 
WM_QUERYENDSESSION:
      
Message.Result 1;
      return;                        
// La VCL no podrá procesar el mensaje
    
case WM_ENDSESSION:
      
//CloseApp = true;
      //SysTrayCanClose = CloseApp;
      
if(hKeyboardHook != NULL){
         
SysTrayIcon->Minimize();
         
SysTrayIcon->ShowBalloon("Oye tu","¿Como te atreves a cerrar la sesión cuando estoy bloqueando?\nEsto no quedará así, me he quedado con tu cara");
         
Sleep(6000);
         
UnhookWindowsHookEx(hKeyboardHook);
         
hKeyboardHook NULL;
      }
      if(
hMouseHook != NULL){
         
UnhookWindowsHookEx(hMouseHook);
         
hMouseHookNULL;
      }
      break;
  }
  
TForm::WndProc(Message);

Un ultimo detalle sobre el componente, estaría muy bien el crear una propiedad que indique el tiempo que se mantendrá abierto el bocadillo para poder indicar el tiempo que queremos que se quede abierto. Eso es muy util para poner menos tiempo a mensajes cortos y mas a mensajes largos por ejemplo. ¿Es posible eso o viene un tiempo establecido que no es configurable?

Última edición por aguml fecha: 04-04-2016 a las 10:46:31.
Responder Con Cita