我的电脑上的一些应用程序已经进行了检测,重新启动是否由Windows Update完成。 这是可观察到的,因为它们在自动Windows Update重新启动后重新启动。
这是非常有用的,因为这些应用程序重新加载更改,甚至未保存的更改或恢复选项卡(浏览器的情况下)。 这样做的应用程序的例子:
在所有情况下,应用程序保存重启之前的状态 。
(我的电脑实际上是从待机状态自动唤醒的,并且在安装更新的时候重新启动了自己,太糟糕了,这样做不会回到待机状态。)
我的问题是:如何以编程方式检测这种重新启动? 在重新启动之前似乎是可靠检测到的。
问题我怎么才能得到Windows最后一次重启的原因可能看起来像重复,但没有答案说任何更新。
我用C#编写代码,所以在C#中的答案会很有帮助,但是我也可以读C和C ++。
请参阅应用程序重启 :
应用程序可以使用应用程序恢复和重新启动(ARR)来保存数据和状态信息,因为未处理的异常或应用程序停止响应
和:
或者如果计算机需要重新启动作为更新的结果。
事实之后,应用程序没有检测到重新启动的原因 – 它们已经被设计为使用这个API。 没有(据我所知)为此托管的API。
由于软件更新而关闭应用程序时,保存数据和应用程序状态只需几次点击。 再次,没有托管的API。
通常情况下,在Windows重新启动时,通过使用shutdown.exe和/ g标志执行重新启动,此标志在重新启动之前保存所有注册的正在运行的程序的状态。 你想要做的是注册你的应用程序重新启动。 有一个很好的示例与MSDN文档。 它在C#和C ++中可用。