2012-03-10 13 views
7

Algunas aplicaciones en mi PC han estado haciendo una detección si Windows Update reinició o no. Esto es observable debido a que se reinician después del reinicio automático de Windows Update.Detectar si un reinicio de Windows se debió a las actualizaciones de Windows

Esto es muy útil ya que esas aplicaciones vuelven a cargar los cambios, incluso cambios no guardados cambios o pestañas de restauración (en el caso de un navegador). Ejemplos de las aplicaciones que hacen esto:

  • Google Chrome
  • Microsoft Visual Studio
  • Microsoft Paint

En todos los casos las aplicaciones de guardar el estadoque se encontraban antes del reinicio.

(Mi PC en realidad se despertó de un estado de espera automáticamente y reinicia en sí mientras instaling actualizaciones Lástima que aún no ha volver al modo de espera después de hacer esto..)

Mi pregunta es: ¿Cómo mediante programación detectar este tipo de reinicio? Parece ser confiablemente detectable antes del reinicio.

La pregunta How can I get the Windows last reboot reason puede parecer un duplicado, pero ninguna respuesta dice nada acerca de las actualizaciones.

código en C#, por lo que una respuesta en C# sería útil, aunque también puedo leer C y C++, por ejemplo.

+0

También puede intentar preguntar en ServerFault. Vi algunas preguntas sobre el reinicio de Windows allí. Pruebe http://serverfault.com/search?q=windows+reboot – DOK

+0

Quiero programar (usando un lenguaje de programación) detectar el reinicio ... Preguntar en ServerFault probablemente no sea correcto, entonces – sinni800

+0

Creo que podrían proporcionar alguna información que podrías usar para escribir algún código.Como dices, "solo necesitas saber dónde buscar y para qué estado". Si realmente está buscando una respuesta, no rechazaría tan rápidamente una respuesta potencialmente útil. – DOK

Respuesta

4

Ver Application Restart:

Una aplicación puede utilizar Recuperación de aplicaciones y reiniciar (ARR) para guardar los datos y la información de estado antes de la aplicación se cierra debido a una excepción no controlada o cuando la aplicación deja de responder

y:

o si la computadora necesita reiniciarse como resultado de una actualización.

Las aplicaciones no detectan el motivo de reinicio después del hecho: han sido diseñadas para usar esta API. No hay (hasta donde yo sé) una API administrada para esto.


Un par de clics de distancia es Saving data and application state when application is being closed due to a software update. Nuevamente, no API administrada.

0

Normalmente, cuando se reinicia Windows, se reinicia utilizando shutdown.exe y el indicador/g que guarda el estado de todos los programas en ejecución registrados antes de reiniciar. Lo que quiere hacer es registrar su aplicación para reiniciar. Hay un good sample con documentación para esto por MSDN. Está disponible en C# y C++.

Cuestiones relacionadas