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

通过任务管理器查找到这个“XX已停止工作”的对话框属于WerFault进程,通过查阅资料了解到这是Windows错误报告的服务,根据网上资料,在Windows服务管理器中关闭这个错误报告服务,仍然会弹出停止运行的对话框。最后在MSDN上找到了Windows的错误报告服务配置说明:https://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx

从这份文档中可以看出,Windows的错误报告服务的可配置性还是很高的,有很多选项可配置。最终找到关键之处,即注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting 分支下的DontShowUI和Disabled选项。其中DontShowUI选项表示是否显示“XX已停止工作”的对话框,Disabled则表示是否禁用Windows错误报告服务。经过测试,如果只开启DontShowUI,程序再奔溃时,虽然不会弹出停止工作的对话框了,但错误报告服务仍然在运行,所以奔溃进程会过几秒才消失。如果开启了Disabled则程序奔溃时,进程迅速消失。

如果不想对所有程序禁用Windows错误报告服务,而想只对指定程序禁用Windows错误报告服务,可以查阅上面链接中的文档,通过添加注册表分支ExcludedApplications来实现。

另外值得一提的是HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps分支,创建这个LocalDumps分支后,程序奔溃时会自动创建DUMP文件,方便分析程序程序奔溃原因。这样就不用在你的程序里写保存DUMP文件的代码了。

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

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]

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]

Windows程序奔溃后,禁止弹出“停止工作”对话框相关推荐

  1. 微信小程序拒绝授权后不弹出

    在微信小程序中,如果用户在小程序中拒绝过授权,下次再请求时是不会再次弹出授权窗口的. 所以需要先判断授权状态,手动弹出授权提醒 const mapInfo = () => {return new ...

  2. 完美解决 Adobe Acrobat XI安装后闪退和停止工作问题

    先说下问题出现的大致情况. 由于公司调动的原因,我重新搞来俩台新的笔记本,所以需要安装Adobe,我是用正版然后破解的,毕竟没什么钱. 但是破解之后呢发现Adobe不是闪退就是弹出停止工作. 我首先在 ...

  3. 禁用计算机账户控制,win8系统禁止弹出用户账户控制窗口的方法

    有不少win8系统用户在运行一些软件程序的时候,发现Windows总是会自动弹出用户账户控制窗口,虽然可以有效防止有害程序更改计算机设置,但是对于一些可信任的程序来说就多余了,那么要win8系统如何禁 ...

  4. win8 必须重新启动计算机才能关闭用户账户控制,win8系统禁止弹出用户账户控制窗口的方法...

    有不少用户在运行一些软件程序的时候,发现Windows总是会自动弹出用户账户控制窗口,虽然可以有效防止有害程序更改计算机设置,但是对于一些可信任的程序来说就多余了,那么要 1.在运行程序时,当弹出&q ...

  5. webview中获得焦点禁止弹出键盘_电脑键盘使用方法

    对于刚使用电脑的电脑新手而言,首先要做的就是熟悉键盘.不过,小编发现有许多的童鞋都怕文字过于繁多看的自己眼花,别担心,小编这有电脑键盘的示意图,能让大家一目了然. 对于经常需要使用电脑的人而言,键盘那 ...

  6. 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)...

    (一).说明 功能类似Windows 操作系统自带的记事本.  一个WinForm记事本程序(包含主/下拉/弹出 菜单/打开保存对话框等控件用法以及记事本菜单事件的具体代码) (二).图片示例 (三) ...

  7. sublimeText3安装package control和禁止弹出更新下载弹窗

    1.sublimeText3安装package control import urllib.request,os; pf = 'Package Control.sublime-package'; ip ...

  8. 背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu

    原文:背水一战 Windows 10 (36) - 控件(弹出类): ToolTip, Popup, PopupMenu [源码下载] 背水一战 Windows 10 (36) - 控件(弹出类): ...

  9. Tecplot 360 按教程安装完毕后,弹出“Is your Tecplot 360 EX liense valid?”【终极解决办法】

    Tecplot 360 按教程安装完毕后,弹出"Is your Tecplot 360 EX liense valid?"[终极解决办法] 1. 解决办法总结 参考经典讨论帖:ht ...

最新文章

  1. 13/100. Best Time to Buy and Sell Stock
  2. java版本lstm_LSTM java 实现
  3. 西门子s7 计算机通讯,西门子s7-200 plc通讯连不上怎么办?
  4. mysql openfileslimit 设置_mysql open_files_limit值更改无效
  5. MySQL binlog后面的编号最大是多大?【老叶茶馆公众号】
  6. nginx proxy_pass cannot have URI part in location given by regular expression
  7. 晶体管扩流电源电路设计
  8. [转]破解无线路由器密码
  9. 20行Python代码爬取LOL全英雄皮肤图片
  10. 七问西方主流经济学,考考你的经济学常识
  11. 中英文数据库检索策略对比
  12. 2021年小红书电商直播趋势报告-小红书数据分析报告
  13. 计算机电源MOD,电源全模组和非模组究竟有什么区别?
  14. python爬虫从入门到放弃(一)初识爬虫
  15. 政府OA办公系统实施时需要关注的五个环节
  16. 基于SVM的航空发动机故障诊断系统设计
  17. 案例分享:医疗流式细胞术数据文件(.fcs)导出excel表工具
  18. 揭秘华为数字化转型架构蓝图(多图详解,建议收藏)
  19. Arcgis for Js实现Spline插值、区域裁剪以及页面的轮播效果
  20. 用Java语言开发物联网设备应用(3)

热门文章

  1. DIM公共维度层详细设计(请点赞收藏!!)
  2. 增值税电子发票识别-OCR
  3. 如何免费将多个PDF合并成一个PDF文件?
  4. potplayer 多个进程_搞懂进程组、会话、控制终端关系,才能明白守护进程干嘛的?...
  5. DataSet数据集
  6. Android绘图之Canvas变换(6)
  7. IMU传感器时什么?(二)陀螺仪的种类和原理
  8. AcWing——第55场周赛
  9. 机房的华为服务器该怎样运维,华为张小华:未来智能运维 将把人力从数据中心释放出来...
  10. 【STL】C++ STL之array详解