[C con Clase] RV: Inactividad del sistema

Juan Antonio jalr43 en hotmail.com
Vie Dic 15 14:51:27 CET 2006


 

 

  _____  

De: Juan Antonio [mailto:jalr43 en hotmail.com] 
Enviado el: viernes, 15 de diciembre de 2006 14:46
Para: 'Lista de correo sobre C y C++'
Asunto: RE: [C con Clase] Inactividad del sistema

 

Hola Mario,

 

Yo tengo Windows xp y me funciona. Debes configurar tanto que el sistema
pase a inactividad como que hiberne para que se produzca.

 

A mí el mensaje me aparecía dos veces. La primera vez lo veía porque era
antes de darse la inactividad del sistema. El segundo lo encontraba tras
esperarme poco más de un par de minutos y volver a despertar el PC tras la
hibernación con tan sólo mover el ratón un poco.

 

Yo no tengo puesto ningún protector de pantalla, cuando pasa a inactividad
me aparece una ventanita azul del XP pasando a inactividad, pero el PC sigue
haciendo el mismo ruido que antes. Cuando hiberna aparece al información de
que se está pasando a hibernación y al rato el PC se queda mudo, como si
estuviese apagado, pero si mueves un poco el ratón vuelve a vivir. ¿Te
ocurre todo esto?, si no será que tienes algo que lo evita como conexión a
Internet activa, conexión de red, etc

 

El único mensaje que viene en la referencia es el WM_POWERBROADCAST. Comenta
el switch y coloca un MessageBox general para este mensaje. 

 

 switch (message)                  /* handle the messages */
    {
         case WM_COMMAND:

            switch(LOWORD(wParam))
             {
                ....

                break;
             }
             break;
         case WM_POWERBROADCAST:    // Mensaje que nos interesa

   MessageBox(hwnd,"","",MB_OK);
            

/* switch(LOWORD(wParam))    //No tengo claro si LWORD es necesario.
Funciona colocánolo y quitándolo.
             {
                case PBT_APMSUSPEND:
                     MessageBox(hwnd,"","",MB_OK);    // Tal y como está
esto poco antes de hibernar y pasar a inactividad aparece el mensajito.
                     break;
             }*/
             break;

 

 

Una vez que veas que te aparece el mensaje pues ya intenta usar el switch
con todos los posibles eventos para este mensaje.

 

 switch (message)                  /* handle the messages */
    {
         case WM_COMMAND:

            switch(LOWORD(wParam))
             {
                ....

                break;
             }
             break;
         case WM_POWERBROADCAST:    // Mensaje que nos interesa
             switch(LOWORD(wParam))    //No tengo claro si LWORD es
necesario. Funciona colocánolo y quitándolo.
             {
                case PBT_APMSUSPEND:
                     MessageBox(hwnd,"","",MB_OK);    // Tal y como está
esto poco antes de hibernar y pasar a inactividad aparece el mensajito.
                     break;


    case
<ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmquerysuspendfailed.htm>
PBT_APMQUERYSUSPENDFAILED:

MessageBox();

Break;

    case
<ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmresumesuspend.htm>
PBT_APMRESUMESUSPEND:

MessageBox();

Break; 

               Etc etc                

 }
 break;

 

 

Un saludo,

Juan Antonio.

 

  _____  

De: cconclase-bounces en listas.conclase.net
[mailto:cconclase-bounces en listas.conclase.net] En nombre de Mario Contreras
Enviado el: viernes, 15 de diciembre de 2006 12:34
Para: Lista de correo sobre C y C++
Asunto: Re: [C con Clase] Inactividad del sistema

 

Hola de nuevo Juan. Resulta que he estado probando lo que me dijiste. Y miré
en msdn para entendero bien. He probado las dos cosas que me propusiste:

 switch (message)                  /* handle the messages */
    {
         case WM_COMMAND:

            switch(LOWORD(wParam))
             {
                ....

                break;
             }
             break;
         case WM_POWERBROADCAST:    // Mensaje que nos interesa
             switch(LOWORD(wParam))    //No tengo claro si LWORD es
necesario. Funciona colocánolo y quitándolo.
             {
                case PBT_APMSUSPEND:
                     MessageBox(hwnd,"","",MB_OK);    // Tal y como está
esto poco antes de hibernar y pasar a inactividad aparece el mensajito.
                     break;
             }
             break;



y:
 

 

case WM_POWERBROADCAST:    // Mensaje que nos interesa

    MessaBox(hwnd,"Entrada al mensaje WM_POWERBR...","Pruebas",MB_OK);
             switch(LOWORD(wParam))    //



Pero no funcionan. No entiendo por qué. ¿A ti te sirve? He probado cambiando
la configuración de enegía del PC pero no sirve. ¿Tienes alguna idea?
Gracias por tu ayuda. 

 

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20061215/956ec8b8/attachment.html>


Más información sobre la lista de distribución Cconclase