Visual studio VisualStudio:如何阻止断点命中窃取焦点?

Visual studio VisualStudio:如何阻止断点命中窃取焦点?,visual-studio,debugging,focus,breakpoints,Visual Studio,Debugging,Focus,Breakpoints,当Visual Studio中的断点被击中时,它会从程序员当时正在查看/键入的任何其他应用程序中窃取焦点。这可能非常令人恼火,因为VS会获取程序员当时在另一个应用程序中键入的任何键盘输入,并将该输入作为自己的输入 你们用什么技巧来防止这种焦点窃取 (我在Visual C++ 2008和2010中面对这个问题。我猜这对于VisualStudio来说是个问题,对于所有的最近版本。)< P>一个解决办法是使用函数将当前状态输出到调试器输出窗口。您只需将VisualStudio放在后台,定位调试的程序窗

当Visual Studio中的断点被击中时,它会从程序员当时正在查看/键入的任何其他应用程序中窃取焦点。这可能非常令人恼火,因为VS会获取程序员当时在另一个应用程序中键入的任何键盘输入,并将该输入作为自己的输入

你们用什么技巧来防止这种焦点窃取

(我在Visual C++ 2008和2010中面对这个问题。我猜这对于VisualStudio来说是个问题,对于所有的最近版本。)

< P>一个解决办法是使用函数将当前状态输出到调试器输出窗口。您只需将VisualStudio放在后台,定位调试的程序窗口,使“输出”窗口可见,并且不会发生焦点转换


您可能希望使用宏进行条件编译,以便在发布版本中不包含跟踪代码。

右键单击断点并选择When hit。。。这将允许您在遇到断点时运行函数。您可以使用它将状态消息打印到输出窗口。您的应用程序将保持焦点。

这是一个注册表设置。请参阅上的
ForegroundLockTimeout
。零允许应用程序窃取焦点。当选中“防止应用程序窃取焦点”时,TweakUI将该值设置为200000

要获得更多控制,请下载适用于Windows XP的Powertoys的Tweak UI实用程序。在“常规”选项卡中,选择“焦点”并选中“防止应用程序窃取焦点”

  • 谷歌搜索ForegroundLockTimeout在

  • Bing搜索防止应用程序在

  • 应用程序将重点放在Windows XP上,以获取TweakUI的屏幕截图

  • 请不要窃取我的注意力,编码恐怖,杰夫·阿特伍德

    奇怪的是,有 营运基金内的准备金 保护我们免受恶劣天气影响的系统 编写的、窃取焦点的应用程序。 ForegroundLockTimeout注册表 该设置专门设计用于 防止应用程序被窃取 关注用户。操作系统安静地运行 转换不适当的焦点 偷取行为变得更友好, 无创任务栏按钮闪烁, 这本书的主题是什么 ForegroundFlashCount注册表设置

  • 如何防止程序在Windows XP中窃取焦点


我偶然发现了一个变通方法,我已经使用了几年,虽然我在2008年和2010年没有测试过它,但它肯定在2013年、2015年和2017年有效,至少在Windows 7和10中有效

它依赖于这样一个事实:如果另一个Visual Studio实例在执行中暂停,Visual Studio将不会窃取焦点。显然,与VS一样特殊的是另一个VS:-/

用一个简单的项目打开VS的第二个实例。以您喜欢的方式暂停项目的执行(例如,在执行和调试的第一行上放置一个断点),然后您可以简单地最小化VS,并且您实际使用的VS实例都不会窃取焦点


这显然是一个很重的解决方案,但是如果你有足够的RAM(空闲VS的CPU使用率甚至没有为我注册),它工作得很好。我还没有在版本间实例中尝试过(例如,在'13中暂停以使'17正常工作),但如果这样做有效,您可能希望选择使用旧版本实例作为“虚拟”实例,以减少资源使用。

这最终在VS2019中得到了解决。转到工具->选项->调试->常规,底部是“在调试器中断时将Visual Studio置于前台”。
只需取消选择它,您将不再在多任务处理时被中断


这不是Visual Studio的问题。这是Windows操作系统的一项功能。我仍在等待一个可用的解决方案。我在一天中不断地打开和关闭断点。到目前为止,所有的答案都没有帮助。这非常有用——我经常使用这种技术(尽管它确实会减慢应用程序的速度)是的,这非常有用!我在测试一些WinForms行为,包括
Focus
,VS把我搞得一团糟。此方法解决了我的问题(因为标记为answer的修复/破解不会赢得7)。Windows 7上我的注册表中ForegroundLockTimeout的值为0x30d40(200000)我已经看到VStudio在遇到断点时窃取焦点。我确认此答案解决了除Visual Studio外几乎所有应用程序的焦点窃取行为。不幸的是,Visual Studio似乎并不关心此设置。Microsoft的爱好是绕过其自己的功能。他们认为他们拥有这个地方。这真是讨厌透了。它利用了微软“认为他们拥有这个地方”这一事实这是唯一有效的建议解决方案,但它对我来说太重了。这非常有效,但现在我很恼火,当遇到断点时,任务栏项不再亮起…是的,我会忘记我有时在调试,然后必须打开VS才能看到我在断点上。但这比打字时被随机打断要好得多!我决定为VisualStudio创建一个关于突出显示任务栏的功能请求:有人知道我们是否可以让它停止闪烁任务栏吗?这让我很焦虑!