禁用Windows"调试窗口"从命令行调用程序时

时间:2015-02-26 20:51:36

标签: c# .net

我从C#应用程序启动一个命令行应用程序,这个命令行应用程序是另一个C#应用程序,并且不时引发异常并死掉,这通常不是问题,代码知道如何处理这个情况下。

问题是每当它引发此错误时都会显示Windows调试窗口。有什么办法可以从调用程序中禁用它吗?就像ProcessStartInfo属性一样,我可以用它来防止它发生?

我也可以更改命令行程序,但我不应该这样做。

2 个答案:

答案 0 :(得分:1)

您看到的是Just-In-Time Debugger,要使您的程序从检测到的程序列表中排除,这些程序将启动调试程序,您必须将您的exe名称放在以下注册表中

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList

如果您运行的是64位版本的Windows,则还应将exe名称添加到

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug\AutoExclusionList

创建一个新的REG_DWORD值,将其命名为YourAppName.exe并将值设置为1

有关详细说明,请参阅this MSDN article

答案 1 :(得分:0)

错误显然是由未处理的异常引起的。

假设它是一个命令行应用程序,为什么不直接用try ... catch块包装整个Main方法并以适当的方式处理异常,比如将错误代码返回给控制台或您需要/想要做的其他事情。