2011-08-21 114 views
8

我有一个c#WPF应用程序,它在关闭时需要保存数据。如果用户关闭程序,窗口关闭/关闭事件工作正常,但如果用户注销/关闭计算机,则不会调用它们。在wpf应用程序中捕获Windows关机事件

我找到了在winforms程序中捕获此事件的方法(herehere)。但我不知道如何在WPF应用程序中实现这一点。

我试图阻止关机,直到我的计划是准备退出

回答

14

有一个内置的事件Application.SessionEnding - 当用户注销或关闭计算机此事件触发...你只是需要订阅,并把你的代码保存日期等在那里...

+0

这将完全停止计算机关闭,我试图停止关机,直到我的程序准备退出。对不起,我应该在OP中指定。 – zaza

+0

我真的不明白......这个事件本身没有任何作用......如果你的代码需要很长的时间来响应,那么Windows会询问用户他是否想要杀死你不能真正阻止的应用程序......你的应用程序在处理这个事件时应该是快速的。你可以试着告诉Windows不要关闭(在事件处理程序中设置'e.Cancel = true;')... – Yahia

+0

ops sry,这对我来说有点误解。我想我必须取消SessionEndingCancelEventArgs事件,然后才能在应用程序中调用事件。你的解决方案完美运作 – zaza

相关问题