Ver Mensaje Individual
  #5 (permalink)  
Antiguo 06/04/2016, 04:33
aguml
 
Fecha de Ingreso: febrero-2015
Mensajes: 404
Antigüedad: 9 años, 10 meses
Puntos: 3
Respuesta: Problemas con SendMessage y WM_QUERYENDSESSION y WM_ENDSESSION

Si recibe los mensajes cuando windows se los manda pero no cuando se los mando yo. En mi aplicacion hago esto para controlar esos eventos:
Código C++:
Ver original
  1. void __fastcall TFormMain::WndProc(Messages::TMessage &Message)
  2. {
  3.   switch(Message.Msg){
  4.     case WM_QUERYENDSESSION:
  5.       Message.Result = 1;
  6.       return;                        // La VCL no podrá procesar el mensaje
  7.     case WM_ENDSESSION:
  8.       //CloseApp = true;
  9.       //SysTrayCanClose = CloseApp;
  10.       if(hKeyboardHook != NULL){
  11.          SysTrayIcon->Minimize();
  12.          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");
  13.          Sleep(6000);
  14.          UnhookWindowsHookEx(hKeyboardHook);
  15.          hKeyboardHook = NULL;
  16.       }
  17.       if(hMouseHook != NULL){
  18.          UnhookWindowsHookEx(hMouseHook);
  19.          hMouseHook= NULL;
  20.       }
  21.       break;
  22.   }
  23.   TForm::WndProc(Message);
  24. }