【问题标题】:Catch windows shutdown event in a wpf application在 wpf 应用程序中捕获 Windows 关闭事件
【发布时间】:2011-08-21 05:28:18
【问题描述】:

我有一个需要在关闭时保存数据的 c# WPF 应用程序。如果用户关闭程序,Window Closing/Closed 事件可以正常工作,但如果用户注销/关闭计算机,它们不会被调用。

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

我正在尝试停止关机,直到我的程序准备好退出

【问题讨论】:

    标签: c# wpf wndproc


    【解决方案1】:

    有一个内置事件Application.SessionEnding - 当用户注销或关闭计算机时会触发此事件...您只需要订阅该事件并将您的代码保存在其中即可保存日期等.. .

    【讨论】:

    • 这将完全阻止计算机关闭,我正在尝试停止关闭,直到我的程序准备好退出。抱歉,我应该在 OP 中指定。
    • 我不太明白...这个事件本身什么都不做...如果您的代码需要很长时间才能响应,那么 Windows 会询问用户是否想杀死您的应用程序,而您不能真正防止...在处理此事件时您的应用程序应该很快..您可以尝试告诉 Windows 不要关闭(在事件处理程序中设置 e.Cancel = true;)...
    • ops sry,这对我来说有点误会。我想我必须先取消 SessionEndingCancelEventArgs 事件,然后才能在我的应用程序中调用事件。您的解决方案完美运行。
    猜你喜欢
    • 2017-10-04
    • 2016-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多