Visual Studio:如何阻止偷点焦点的断点?
当Visual Studio中有一个断点时 ,它就会从那个程序员正在查看/input的任何其他应用程序中窃取焦点 。 这可能是非常恼人的,因为VS抓住了程序员在那个时候input到另一个应用程序的任何键盘input,并且把它作为自己的input。
你们用什么技巧来防止这种焦点偷窃?
(我在Visual C ++ 2008和2010上遇到了这个问题。我猜测这对Visual Studio来说是一个问题,对于所有最近的版本来说都是如此)。
这是一个registry设置。 请参阅http://technet.microsoft.com/en-us/library/cc957208.aspx上的; ForegroundLockTimeout
。 零允许应用程序窃取焦点。 当“防止应用程序窃取焦点”被选中时, TweakUI将此值设置为200000。
有关更多控制,请下载适用于Windows XP的Powertoys的Tweak UI实用程序。 在“常规”选项卡中,select“焦点”并选中“防止应用程序窃取焦点”。
-
Google在http://www.google.com/search?q=ForegroundLockTimeout上searchForegroundLockTimeout
-
Bingsearch防止应用程序窃取焦点在http://www.bing.com/search?q=Prevent+applications+from+stealing+focus
-
应用程序窃取重点在Windows XP上http://mycvs.org/archives/2004/11/16/applications-stealing-focus-on-windows-xp TweakUI的屏幕截图。
-
请不要偷我的焦点 ,编码恐怖,杰夫阿特伍德在http://www.codinghorror.com/blog/2007/12/please-dont-steal-my-focus.html
奇怪的是,操作系统中已经有了一些规定来保护我们免受严重的书面和重点窃取应用程序的侵害。 ForegroundLockTimeoutregistry设置明确地被devise防止应用窃取用户焦点。 操作系统默默地将不恰当的焦点窃取行为转换成友好的,侵入性更小的任务栏button闪烁,这是ForegroundFlashCountregistry设置的主题。
-
如何防止程序在Windows XP中窃取焦点在http://www.howtodothings.com/computers-internet/how-to-prevent-programs-from-stealing-focus-in-windows-xp
右键单击断点并select当命中…这将允许您在命中断点时运行一个函数。 您可以使用它将状态消息打印到输出窗口。 你的应用程序将保持焦点。
一种解决方法是使用OutputDebugString()
函数将当前状态输出到debugging器输出窗口中。 您只需将Visual Studio放置在后台,将debugging的程序窗口置于“输出”窗口即可看到,并且不会发生焦点转换。
您可能需要使用macros进行条件编译,以便跟踪代码不会包含在发布版本中。
无意中发现了一个解决方法,我已经使用了几年了,虽然我没有在2008年和2010年testing过,但它肯定在2013年,15和17年,至lessWindows 7和10。
它依赖于如果另一个Visual Studio实例暂停执行 , Visual Studio将不会窃取焦点。 显然唯一和VS一样特别的是VS. : – /
用一个简单的项目打开VS的第二个实例。 暂时停止项目的执行(例如,在第一行执行和debugging中放置一个断点),然后可以简单地将VS最小化,而实际使用的任何VS实例都不会集中注意力。
这显然是一个重量级的解决scheme,但是如果你有足够的内存(空闲的VS的CPU使用率甚至没有为我注册),它运作良好。 我没有尝试过版本间的实例(例如,在'13中暂停'17'的行为),但如果这样做,你可能会想select使用旧版本的实例作为你的“虚拟”VS减less在资源使用上。