Знаете ли вы, что...

При выделении содержимого окна командного интерпретатора любая выполняющаяся в нём программа, скрипт или команда ставится на паузу. И стоит на паузе до тех пор, пока выделение не будет снято.

Попробуйте сами:

  1. Откройте cmd.exe и включите в настройках возможность выделения текста (т.н. режим редактирования).

    Правая кнопка мыши на заголовок, меню «Свойства», вкладка «Общие», группа «Редактирование», галка «Выделение мышью».

    Процедура «Редактирования» выглядит следующим образом: с нажатой левой кнопкой мыши можно выделить прямоугольник, а при нажатии правой кнопки мыши текст из прямоугольника падает в буфер обмена. Выделение при этом снимается.

    Эта настройка стоит практически у любого виндуз-админа, потому что информацию из cmd надо часто копировать.

  2. Сэмулируйте запуск продолжительного скрипта, который делает важные вещи. Например, вот так:

    ping -t localhost

  3. Выделите что-нибудь. Можно даже «случайно» ткнуть мышью в любое место: выделится один символ под указателем.

  4. Материтесь.

Поясняющий рисунок «Зависший пинг».

Внимание на белый прямоугольник справа от вывода. Это выделение.
О том, что это именно выделение, свидетельствует и изменившийся заголовок окна: к нему добавилось слово «Выбрать».

Кстати, при прокрутке содержимого окна ползунком — исполняемый внутри скрипт тоже ставится на паузу. До тех пор, пока левая кнопка мыши не будет отжата.


Толковым программистам из микрософта нужно было побороть ситуацию, когда текст в выделенной области может меняться в результате работы скрипта или программы. Толковые программисты из микрософта нашли самый лучший вариант: приостановленная программа не сможет изменить содержимое окна!
И ниибёт.
Даже если в окне у тебя выполняется суточный бэкап, а ты ткнул в него мышью совершенно случайно.

Протестировано в:

  • Windows 2003 SP2
  • Windows XP SP3
  • Windows 7 (спс. Димитрий!, я также проверил на SP1, подтверждаю)
  • Windows 10 (спс. Ринат)

Димитрий!
2012.07.28 17:07:39
#cid35606

Ответить

на семерке тож протестировано (

2012.08.06 20:24:13
#cid36527

Ответить

#cid35606, Димитрий!

на семерке тож протестировано (

Добавил, спасибо!

dmitry tarakanov
2012.12.19 02:08:20
#cid51158

Ответить

Даже если в окне у тебя выполняется суточный бэкап, а ты ткнул в него мышью совершенно случайно.

А ткнуть случайно на "крестик" закрыть при этом - это нормально или снова microsoft виноват? Или на кнопку "power off" на клавиатуре?

imen
2012.12.19 10:38:34
#cid51180

Ответить

#cid51158, dmitry tarakanov

А ткнуть случайно на "крестик" закрыть при этом - это нормально или снова microsoft виноват?

А вот и иллюстрация феномена юридической доказуемости :)
Рассказывает нам о нормальности привычных _ему_ костылей.
Ответь лучше на пару вопросов:
1. В восьмёрочке... фича воспроизводится?
2. Вкладки (табы) в эмуляторе терминала уже "изобрели"? Или ситуация аналогична виртуальным рабочим столам?

Или на кнопку "power off" на клавиатуре?

Лично мне здесь сразу вспомнился шедевр интуитивности и эргономики в виде расположения кнопки выключения питания непосредственно под клавишей Delete...
:)))

2012.12.19 17:06:58
#cid51207

Ответить

#cid51158, dmitry tarakanov

А ткнуть случайно на "крестик" закрыть при этом - это нормально или снова microsoft виноват? Или на кнопку "power off" на клавиатуре?

Крестик закрывает окно. Это очевидное, понятное и документированное событие. Хотя, нормальные приложения даже перед таким закрытием выдадут предупреждение, что в окне выполняется процесс и попросят подтвердить выход (cmd, кстати, этого не делает).

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

Понятна ли тебе разница между документированным событием и откровенным багом?

Rinat
2015.07.22 20:07:41
#cid90814

Ответить

Win 10 работает)

2015.07.22 21:01:49
#cid90815

Ответить

#cid90814, Rinat

Win 10 работает)

Спасибо, добавил )))

Dez
2020.04.20 03:31:58
#cid92310

Ответить

Windows 10, за 5 лет ничего не изменилось. Периодически смотрю работает ли скрипт, который крутится круглосуточно. Один раз из 10 случайно ставлю его на паузу, и потом матерюсь.