如何禁止程序崩溃时弹出“停止工作”对话框
  2022/5/28 22:47:15
  Windows程序崩溃后,禁止弹出“停止工作”对话框
  在Win7及以后的系统中,如果一个程序发生了奔溃,系统可能会弹出一个“XX已停止工作”的对话框,如果不去这个窗口上点击“关闭程序”,那么这个窗口会一直存在,最为关键的是,奔溃的进程并没有真正结束,还一直挂起在那里,真让人泪奔。这在自动化无人值守程序开发中是不允许的,有时候有的程序只能运行一个实例,如果奔溃的这个进程一直没有真正结束,新进程就无法启动。一开始我们想到的解决方案是去模拟点击这个“XX已停止工作”的对话框,不过这样实在是太LOW了。

  Windows的错误报告服务的可配置性还是很高的,有很多选项可配置。最终找到关键之处,即注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting 分支下的DontShowUI和Disabled选项。其中DontShowUI选项表示是否显示“XX已停止工作”的对话框,Disabled则表示是否禁用Windows错误报告服务。经过测试,如果只开启DontShowUI,程序再奔溃时,虽然不会弹出停止工作的对话框了,但错误报告服务仍然在运行,所以奔溃进程会过几秒才消失。如果开启了Disabled则程序奔溃时,进程迅速消失。
  另外值得一提的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps分支,创建这个LocalDumps分支后,程序奔溃时会自动创建DUMP文件,方便分析程序程序奔溃原因。这样就不用在你的程序里写保存DUMP文件的代码了。

  下面给出一个实用的reg文件,将其复制并保存为reg文件,如123.reg,双击导入注册表后,这台电脑再有程序奔溃时就不会弹出停止运行窗口了,并且能自动保存DUMP文件。如果不需要保存DUMP文件,去掉最后一行:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]

  以下为reg文件代码:
  Windows Registry Editor Version 5.00
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting]
  "DontShowUI"=dword:00000001
  "Disabled"=dword:00000001
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]

 [1] [2] [3]

相关文章(向右看)..

·相关
chatgpt为何如此火爆,它真
C4D细化及简化模型方法/图
你的法线贴图烘培为何总不成功?/图
C4D:模型不平滑不光滑怎么搞?/图
Unity精要:镜子效果、玻璃效/图
C4D对象复制后单面变透明解决
流氓软件可不知不觉窥视你的生活
电脑变慢问题详解(各种原因)
符号大全,不能用键盘输入的字符完/图
数字地球:人们对21世纪星球的认

·热点