如何知道应用程序正在关闭

时间:2010-01-21 22:57:10

标签: c# wpf dialog monitor shutdown

有一个WPF应用程序。

我想在应用程序关闭时记录。

但我无法修改应用程序(一些限制,仅仅因为业务)。

所以我在现有应用程序中创建一个不可见的表单组件,添加为dll库,因此不需要修改现有的应用程序。

但问题是,我的隐形组件如何知道应用程序正在关闭?

我可以使用一些函数或事件处理程序吗?

解决方案:

有一些事件可以做到,

卸载 闭幕 关闭

当主窗口关闭时,将触发所有这三个事件。

问题解决了

3 个答案:

答案 0 :(得分:4)

System.Windows.Window类有一个虚拟OnClosing(CancelEventArgs)方法,可以为此覆盖,以及可以处理的Closing事件。

我通常捕获这些事件并将信息传递给Page类,遗憾的是,这些类不包含此类方法或事件。

每个窗口都会在关闭时触发这些方法,因此无需在父窗口和子窗口之间连接任何消息。并且,我相信,任务管理器将首先尝试正常关闭应用程序,这将导致关闭事件触发,除非其他内容(如对话框)阻止它。只有在尝试之后,TM才会询问是否要对应用程序执行异常结束,这显然会绕过Closing事件。

答案 1 :(得分:0)

您检查过FormClosing事件吗?

答案 2 :(得分:0)

我仍然没有WPF的知识,但我确实从winforms知道,Closing类中有一个事件Form,您可以捕获并显示对话框'此应用程序正在退出,你希望继续等',并将Cancel标志设置为true以中止关闭表单,同样来自ApplicationExit类的Application事件,你可以陷阱,如果你想要处理关闭应用程序的问题。

希望这有帮助, 最好的祝福, 汤姆。