Estoy haciendo una aplicación que se utiliza para borrar los archivos Temp, historial, etc., cuando el usuario cierra la sesión. Entonces, ¿cómo puedo saber si el sistema cerrará sesión (en C#)?Obtener el evento de cierre de sesión del sistema
7
A
Respuesta
9
Hay una propiedad en Medio Ambiente clase que le informa sobre si el proceso de apagado se ha iniciado:
Environment.HasShutDownStarted
Pero después de algunas google me di cuenta que esto puede ser de ayuda para usted:
using Microsoft.Win32;
//during init of your application bind to this event
SystemEvents.SessionEnding +=
new SessionEndingEventHandler(SystemEvents_SessionEnding);
void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
if (Environment.HasShutdownStarted)
{
//Tackle Shutdown
}
else
{
//Tackle log off
}
}
Pero si solo desea borrar el archivo temporal, entonces creo que distinguir entre apagar o cerrar sesión no tiene ninguna consecuencia para usted.
0
6
Si usted necesita específicamente el caso de finalizar la sesión, puede modificar el código proporcionado en la respuesta de TheVillageIdiot de la siguiente manera:
using Microsoft.Win32;
//during init of your application bind to this event
SystemEvents.SessionEnding +=
new SessionEndingEventHandler(SystemEvents_SessionEnding);
void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
if (e.Reason == SessionEndReasons.Logoff)
{
// insert your code here
}
}
Cuestiones relacionadas
- 1. Cómo llamamos al servlet de cierre de sesión en el navegador cierre el evento
- 2. Obtener el evento de cierre de la aplicación
- 3. ¿Cómo detectar el cierre del sistema pendiente en Linux?
- 4. ShowDialog en el evento de cierre
- 5. Aplicación de fuerza cerca del cierre del sistema
- 6. autenticación de ASP.NET inicio de sesión y cierre de sesión con el botón Atrás del navegador
- 7. Detectar el cierre de sesión de Windows en Python
- 8. ¿Cómo manejo el inicio/cierre de sesión en Caliburn.Micro?
- 9. La mejor manera de detectar el cierre/navegación del navegador a otra página y cerrar sesión
- 10. ¿Cómo lograr el cierre de sesión automático en php?
- 11. Operador de cierre de sesión de Symfony
- 12. Django problema de cierre de sesión
- 13. cierre de sesión y redirigir sesión en php
- 14. Obtener el tamaño del sistema RAM
- 15. Symfony2 tema de cierre de sesión
- 16. Cómo escuchar el evento de cierre de IIS en ASP.NET
- 17. Interceptar el evento de cierre de Windows Vista en C#
- 18. "e.Cancelar" en cierre de formulario Evento
- 19. Cierre de Google - Html5History activa el evento NAVIGATE dos veces
- 20. Cierre de sesión automático una vez que la sesión caduque
- 21. Obtener fuente predeterminada del sistema
- 22. ¿Concepto y lógica del sistema de inicio de sesión?
- 23. ¿Cómo detectar el cierre del navegador?
- 24. ASP.NET cierre de sesión de autenticación de Windows
- 25. Django cierre la sesión del usuario con autenticación remota
- 26. Implementar cierre de sesión automático + advertencia en asp.net + jquery?
- 27. Diseñe el cierre de sesión independiente para dos modelos diferentes
- 28. ¿Captura el evento de cierre de la tapa del portátil en Windows?
- 29. Obtenga la fecha y hora del último evento de cierre de Windows con .NET
- 30. Obtener el tamaño de bloque del sistema en Java
Tenga en cuenta, sin embargo, en Vista + tiene muy poco tiempo para hacer cosas durante el apagado, así que asegúrese de que no puede bloquear ni esperar por ningún motivo (es decir, tratando de eliminar un archivo que pueda estar en un recurso compartido de red, etc ...) –
gracias @Paul, entonces, ¿debería ser aconsejable hacer una entrada en alguna parte para que Windows limpia las cosas el próximo reinicio o inicia sesión? – TheVillageIdiot