在Windows 8中检测重启 – 未调用SessionEnding

当用户从设置超级buttonclosuresWindows 8时,我的WPF应用程序可以使用SessionEnding事件来检测这个事件。

魅力下的权力

在selectclosures的情况 ,我得到“由于SystemShutdown会话结束”

SystemEvents.SessionEnding += SystemEvents_SessionEnding; private void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e) { Trace.WriteLine("Session Ending Due To " + e.Reason); } 

closures呼叫SessionEnding,但重新启动

但是当用户select重新启动时,SessionEnding不会被调用!

在Windows 8中检测重新启动意图

  • 如何做呢?

在这里他们说,通过观看WM_EndSession消息,你应该能够看到重新启动: http ://www.autoitscript.com/forum/topic/94616-detect-windows-shutdownlogoffrestart-event/

您还需要钩在WPF应用程序中的WndProc : 如何处理WPF中的WndProc消息?