tengo un servicio de Windows que obtiene los detalles del usuario y guarda el resultado en el archivo de texto de registro. y, mi problema es que cuando apago o cierro sesión en mi sistema, también me gustaría guardar el tiempo que llevo en mi sistema en ese archivo de registro. pero, no sé cómo hacer eso.detectar apagado en servicio de ventana
Comprobé el método de winproc para detectar la operación de apagado, pero no pude usarlo en el servicio de ventana, en Google descubrí que solo se puede usar con formularios. ¿Cómo podemos detectar que el usuario ha hecho clic en cerrar o cerrar sesión y hacer alguna acción? entonces, por favor dame alguna idea o sugerencia sobre eso.
lo he utilizado para el cierre de sesión, pero en una entrada al registro cuando finalice la sesión del sistema
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
this.RequestAdditionalTime(250000); //gives a 25 second delay on Logoff
if (changeDescription.Reason == SessionChangeReason.SessionLogoff)
{
// Add your save code here
StreamWriter str = new StreamWriter("D:\\Log.txt", true);
str.WriteLine("Service stoped due to " + changeDescription.Reason.ToString() + "on" + DateTime.Now.ToString());
str.Close();
}
base.OnSessionChange(changeDescription);
}
el cierre de sesión no funciona, debería tener que agregar algo más – deepu
@deepu: Lo siento, te he extraviado al olvidar la llamada a la base OnSessionChange. Ver mi última edición. – MPelletier
gracias voy a comprobar que, ¿hay algún método para mantener apagado hasta que se complete el proceso OnShutdown evento – deepu