visual-studio - точка - точки останова vs




Visual Studio: как остановить точку останова от кражи фокуса? (3)

Когда в Visual Studio попадает точка останова , она крадет фокус из любого другого приложения, которое программист просматривает / вводит в этот момент. Это может быть очень раздражающим, так как VS захватывает любой ввод с клавиатуры, который программист вводил в другое приложение в этот момент и принимает этот вход как свой собственный.

Какие трюки вы используете, чтобы предотвратить кражу фокуса?

(Я сталкиваюсь с этим на Visual C ++ 2008 и 2010 годах. Я предполагаю, что это проблема для Visual Studio в целом и для всех последних версий.)


Одним из способов является использование функции OutputDebugString() для вывода текущего состояния в окно вывода отладчика. Вы просто размещаете Visual Studio в фоновом режиме, позиционируете отладочное окно программы так, чтобы окно «Выход» было видимым - и переход фокуса никогда не происходит.

Вы, возможно, захотите использовать макросы для условной компиляции, чтобы трассировочный код не включался в сборки релиза.


Случайно я обнаружил обходной путь, который я использую уже несколько лет, и хотя я не тестировал его в 2008 и 2010 годах, он, безусловно, работает в 2013, 15 и 17 и, по крайней мере, с Windows 7 и 10.

Он полагается на то, что Visual Studio не будет красть фокус, если другой экземпляр Visual Studio приостановлен в процессе выполнения. Очевидно, что единственное, что особенное, как VS, - это другое VS. : - /

Откройте второй экземпляр VS с помощью простого проекта. Приостановите выполнение проекта в любом случае (например, поставьте точку останова в первой строке выполнения и отладки), вы можете просто свести к минимуму этот VS, и ни один из экземпляров VS, которые вы на самом деле используете, украдет фокус.

Это, очевидно, тяжелое весовое решение, но если у вас достаточно ОЗУ (использование CPU простоя VS не регистрируется для меня), он работает хорошо. Я не пробовал его с экземплярами меж-версии (например, приостановка в '13, чтобы сделать «17»), но если это сработает, вы, вероятно, захотите использовать экземпляр старой версии, поскольку ваш «фиктивный» VS должен сократить по использованию ресурсов.


Это параметр реестра. См. ForegroundLockTimeout адресу http://technet.microsoft.com/en-us/library/cc957208.aspx . Zero позволяет приложениям красть фокус. TweakUI устанавливает это значение в 200000, когда проверяется «Предотвращение кражи фокуса приложений».

Для большего контроля загрузите утилиту Tweak UI для Powertoys для Windows XP . На вкладке «Общие» выберите «Фокус» и установите флажок «Запретить приложениям кражи фокуса».





breakpoints