如果我的应用程序崩溃,我会拦截崩溃(使用函数 SetUnhandledExceptionFilter)。在我的崩溃处理程序中,我创建了一个小型转储文件,并通知用户他的应用程序已经崩溃。此通知是通过带有标志 MB_TASKMODAL 的 MessageBox 完成的,因此应用程序的其余部分被阻止。
不幸的是,这不会阻止重绘和计时器消息的处理。特别是计时器消息非常烦人,因为它们可能会执行各种中间操作(取决于我的应用程序中加载了哪些插件),甚至保存到备份文件等。
有没有一种简单的方法可以防止 Windows 发送重绘和计时器消息(同时显示“你已经崩溃”弹出窗口)?
另一种方法是使用一些全局变量,该变量将在我的崩溃处理程序中设置,并在我的应用程序中执行某些逻辑的每个地方进行检查,但这对我来说似乎是一个相当“肮脏”且不灵活的解决方案。没有更简单的方法吗?(并且只保证消息框的消息循环只处理消息框消息,不处理其他窗口的消息)。
感谢帕特里克