Comment gerer la sortie de veille dans un service windows ?

 

Il est vrai que les services windows sont plutot dediés aux serveurs mais il arrive que certains service soient installés sur des postes clients, dans ce cas le client peut très bien mettre sa machine en veille ce qui arrete le service, la reprise n'est pas automatique, pour detectecter la sortie du mode veille il faut l'indiquer au service. Dans le constructeur par exemple on indique que l'on veut "Handler" les evenements concernant l'alimentation de la machine hote.

CanHandleEventPower = true;

ensuite pour "reveiller" ses process lors du redemarrage il faut overrider la methode OnPowerEvent et relancer un OnStart

protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
{
// Sortie du mode veille
if (powerStatus == PowerBroadcastStatus.ResumeSuspend)
{
OnStart(null);
}
return true;
}

1 commentaire:

Anonyme a dit…

Do you have copy writer for so good articles? If so please give me contacts, because this really rocks! :)