删除整个键似乎过于“锤式”方法。
弗斯特,可以使用Windows API函数设置错误模式
和/或设置线程错误模式
。可以从中取消预订。NET应用程序。
PInvoke的相关签名为:
公共枚举错误模式:uint{SEM_DEFAULT=0x0000,SEM_FAILCRITICALERRORS=0x0001,SEM_NOGPFAULTERRORBOX=0x0002,SEM_NOALIGNMENTFAULTEXCEPT=0x0004,SEM_NOOPENFILEERRORBOX=0x8000}[DllImport(“Kernel32.dll”)]公共静态外部错误模式设置错误模式(错误模式)//自XP以来可用[DllImport(“Kernel32.dll”)]公共静态外部错误模式GetErrorMode()//自Vista起可用[DllImport(“kernel32.dll”,SetLastError=true)]公共静态外部bool SetThreadErrorMode(ErrorMode-newMode,out-ErrorMode-oldMode)//自Windows 7起可用[DllImport(“Kernel32.dll”)]公共静态外部错误模式GetThreadErrorMode()//自Windows 7起可用
第二,自Vista以来,有一种更具体的基于注册表的解决方案:
仅排除此应用程序的调试。请参见:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb204634(v=vs.85).aspx
复印件:
从自动调试中排除应用程序
以下过程描述了如何在自动值之后将应用程序从自动调试中排除Ae调试
键已设置为1。
-->从自动调试中排除应用程序转到以下注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug
将REG_DWORD值添加到自动排除列表
子项,其中名称是可执行文件的名称,值为1。
默认情况下,桌面窗口管理器(Dwm.exe)被排除在自动调试之外,因为如果Dwm.exe停止响应,可能会发生系统死锁(用户无法看到调试器显示的界面,因为Dwm.exe没有响应,而Dwm.exe无法终止,因为它被调试器持有)。
Windows Server 2003和Windows XP:AutoExclusionList子项不可用;因此,您不能从自动调试中排除任何应用程序,包括Dwm.exe。
默认AeDebug注册表项可以表示为:
HKEY_LOCAL_MACHINE(香港本地机器)软件微软Windows NT(Windows NT)当前版本Ae调试自动=1自动排除列表DWM.exe=1