<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2995" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hola Mario,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>he mirado algo más el tema. Te comento sobre dos
estados de energía del PC:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>- El sistema pasa a modo de inactividad cuando
durante el tiempo que tiene programado (botón derecho en el escritorio,
protector de pantalla y luego botón energía) no se realiza nada en el PC.
Importante si estás descargando cosas de internet no se produce porque está
detectando actividad por lo menos en mi PC. Cuando ocurre aparece la típica
ventanita azul en windows xp con el listado de usuarios, mensajes de cada uno y
estas cosas.El mensaje WM_POWERBROADCAST te avisa 5 segundos antes de de
producirse este estado del sistema.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>- Si el sistema hiberna, pues hace como los
osos...se queda como apagado pero antes guarda todo lo necesario para poder
devolver el sistema a como se encontraba antes de hibernar con sólo mover el
ratón o pulsar una tecla.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Te recuerdo la primera línea de la
función callback:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT
message, WPARAM wParam, LPARAM lParam)</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>El mensaje anterior que se produce tanto antes de
cuando el sistema hiberna como inactiva se captura igual que cualquier otro
mensaje:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2> switch
(message)
/* handle the messages */<BR>
{<BR> case
WM_COMMAND:</FONT></DIV>
<DIV><FONT face=Arial size=2>
switch(LOWORD(wParam))<BR>
{<BR> ....</FONT></DIV>
<DIV><FONT face=Arial
size=2> break;<BR>
}<BR>
break;<BR> case
WM_POWERBROADCAST: // Mensaje que nos
interesa<BR>
switch(LOWORD(wParam)) //No tengo claro si LWORD es necesario.
Funciona colocánolo y
quitándolo.<BR>
{<BR>
case
PBT_APMSUSPEND:<BR>
MessageBox(hwnd,"","",MB_OK); // Tal y como está
esto poco antes de hibernar y pasar a inactividad aparece el
mensajito.<BR>
break;<BR>
}<BR>
break;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Dentro del mensaje WM_POWERBROADCAST se pueden dar
otros muchos que puedes identificar dentro del switch:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV>
<TABLE>
<TBODY>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmbatterylow.htm"><B>PBT_APMBATTERYLOW</B></A></TD>
<TD width="60%">Battery power is low.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmoemevent.htm"><B>PBT_APMOEMEVENT</B></A></TD>
<TD width="60%">OEM-defined event occurred.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmpowerstatuschange.htm"><B>PBT_APMPOWERSTATUSCHANGE</B></A></TD>
<TD width="60%">Power status has changed.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmquerysuspend.htm"><B>PBT_APMQUERYSUSPEND</B></A></TD>
<TD width="60%">Request for permission to suspend.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmquerysuspendfailed.htm"><B>PBT_APMQUERYSUSPENDFAILED</B></A></TD>
<TD width="60%">Suspension request denied.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmresumeautomatic.htm"><B>PBT_APMRESUMEAUTOMATIC</B></A></TD>
<TD width="60%">Operation resuming automatically after event.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmresumecriticalhtm"><B>PBT_APMRESUMECRITICAL</B></A></TD>
<TD width="60%">Operation resuming after critical suspension.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmresumesuspend.htm"><B>PBT_APMRESUMESUSPEND</B></A></TD>
<TD width="60%">Operation resuming after suspension.</TD></TR>
<TR>
<TD width="40%"><A
href="ms-help://MS.PSDKSVR2003SP1.1033/power/base/pbt_apmsuspend.htm"><B>PBT_APMSUSPEND</B></A></TD>
<TD width="60%">
<DIV>System is suspending operation.</DIV></TD></TR></TBODY></TABLE></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>También se me ocurre que puedes colocar un
MessageBox entre el mensaje y el switch para identificar otra situación que te
interese, lo mismo por ejemplo cuando se apaga el monitor o se activa el
protector de pantalla también se produce este mensaje y te interesa más
así.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>case WM_POWERBROADCAST: //
Mensaje que nos interesa</FONT></DIV>
<DIV><FONT face=Arial size=2> MessaBox(hwnd,"Entrada al
mensaje
WM_POWERBR...","Pruebas",MB_OK);<BR>
switch(LOWORD(wParam)) //</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Un saludo,</FONT></DIV>
<DIV><FONT face=Arial size=2>Juan Antonio.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<BLOCKQUOTE
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
<DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
<DIV
style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B>
<A title=kenpuudenkiberserk@gmail.com
href="mailto:kenpuudenkiberserk@gmail.com">Mario Contreras</A> </DIV>
<DIV style="FONT: 10pt arial"><B>To:</B> <A
title=cconclase@listas.conclase.net
href="mailto:cconclase@listas.conclase.net">Lista de correo sobre C y C++</A>
</DIV>
<DIV style="FONT: 10pt arial"><B>Sent:</B> Thursday, December 14, 2006 12:36
PM</DIV>
<DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [C con Clase] Inactividad
del sistema</DIV>
<DIV><BR></DIV>Gracias Juan, creo que me servirá, aunque no me queda muy claro
cómo hacer que mi programa interprete el mensaje...:S<BR><BR>Intentaré probar
a ver qué sale. Gracias y saludos.<BR>
<P>
<HR>
<P></P>_______________________________________________<BR>Cconclase mailing
list<BR><A
href="mailto:Cconclase@listas.conclase.net">Cconclase@listas.conclase.net</A><BR><A
href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</A><BR></BLOCKQUOTE></BODY></HTML>