如何取回“...已停止工作”消息框?


0

我有一个控制台应用程序,它会在启动后立即崩溃,但在终止之前会显示一些非常有用的信息(用于我的调试)。

我曾经在Windows 8.1上启动此应用程序,其中会出现一个错误消息“...已停止工作”的消息框。在我单击错误消息框中的“关闭程序”之前,控制台窗口将保持打开状态以便我读取控制台输出。

我现在正在迁移到Windows 10.不幸的是,Windows 10没有显示“...已停止工作”消息框。相反,它会在应用程序崩溃后自动关闭控制台。

我在联系人的Windows 10计算机上看到了同样的现象,虽然我也被告知有一台Windows 10计算机仍然显示错误消息框。

有没有办法强制Windows 10再次显示消息框(全局或仅针对该应用程序)?

我尝试了各种解决方法,但它们都有缺点:

  • 如果我从控制台窗口(cmd)启动控制台应用程序,它仍然会打开一个额外的控制台窗口,因此我的控制台窗口仍为空白。(也许这与有问题的应用程序有关,需要提升权限并在发布时要求提供这些权限?)
  • 执行相同操作并将输出传递给文件只会生成一个空白文件。
  • 我可以修改有问题的控制台应用程序的源代码,最后等待一些输入,但这是我必须在本地工作副本中进行的更改,这意味着我必须每天重建所述应用程序(因为我的本地二进制文件将被构建服务器中的最新版本覆盖)。
  • 我可以在Windows事件日志中找到相同的输出,但这是一个非常繁琐的选择,因为事件日志查看器是一个非常慢的应用程序,它往往会将相关数据埋在数千个其他无趣的日志条目中。

2
除了解决问题之外,任何时候发生这种情况都会发生事件日志条目,因此您可以随时阅读该文本。
LPChip

... has stopped working如果适用,仍会在Windows 10上显示消息,因此如果没有发生,则错误是由阻止它的内容引起的。 ... has stopped working应该只在Windows认为可执行文件挂起时才会发生,如果应用程序因未处理的异常而崩溃,则该消息将不会显示在任何版本的Windows上。如果您的程序在Windows 10上需要提升权限,而在Windows 8上则不需要,这听起来像是两个安装之间的配置差异。
Ramhound

@LPChip:是的,忘了那个替代方案。我现在在最后一个项目中提到了它,谢谢。
或者Mapper

@Ramhound:该程序需要Windows 8和10上的提升权限。“如果应用程序崩溃时出现未处理的异常,则该消息将不会显示在任何版本的Windows上” - 我无法判断这是真是假。我只是看到应用程序总是(在Windows 8和10上)崩溃并且未处理ReflectionTypeLoadException,因此在Win8上,“...已停止工作”消息出现,而在Win10上则没有。
或者Mapper

1
“倾向于将相关数据埋葬在数千个其他无趣的日志条目中。” 让事件查看器保持打开状态(在需要时使用刷新),您也可以按事件编号过滤或搜索,这并不乏味。
摩押
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.