我最近遇到了与Windows命令提示符的问题,即启用,并单击窗口中选择文本,然后挂一个正在运行的程序快速编辑模式.这,显然,称为行为,我发现与此相关的几个问题:
应用程序如何"暂停"/"暂停"?该过程是否与SIGSTOP*nix上的信号类似?(我也有兴趣了解为什么这个功能首先存在?它似乎不直观且危险.)
我试过几个找到的解决方案,比如一个 - >
但是,我观察到GetConsoleMode(IntPtr hConsoleHandle,out int模式)中的模式对于不同的控制台应用程序将是不同的.它不是恒定的.
我是否可以在控制台应用程序上禁用鼠标单击(右/左按钮)以实现相同的方案.我发现它可以使用IMessageFilter完成,但仅适用于Window Form Application而不适用于控制台应用程序.
请指导.
答案摘要
要避免调试器捕获Ctrl + C,请先关闭Visual Studio Hosting Process(在项目属性,Debug选项卡中找到)
如果您使用的是Visual Studio的Express版本,那就是您所能做的一切.
如果您使用的是Pro或更高版本的Visual Studio,您还可以打开Debug> Exceptions ...,Win32 Exceptions,并取消选中Ctrl + C.
作为替代方案,您可以在调试时使用Ctrl + Break,除非像我这样将Ctrl + C连接到您的大脑.
原版的
以下内容已经过编辑.汉斯似乎已经收回了他的答案,但他的提问帮助我缩小了问题陈述:
额外的清晰度
请注意,以下示例是人为的.这只是为了证明这种行为.我更改了ReadKey系列,因为它让人分心.
调试(运行)以下程序:
class Program
{
static void Main()
{
System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite);
}
}
Run Code Online (Sandbox Code Playgroud)
按Ctrl + C. 调试器将中断,就像在Sleep行上设置断点一样.
你怎么关掉这个?我不希望调试器完全违反Ctrl + C.
VS2008 Pro在家中不会发生这种情况.
我现在已经尝试了VS2008 Express和VS2010 Express(我可以轻松测试它的唯一版本),他们都做到了.这让我相信它是一种Express行为,或者是某个地方可以打开/关闭它.
debugging visual-studio-2010 visual-studio visual-studio-debugging