Настройка автозавершения приложений в Windows

Дмитрий Корнев
7 февраля 2015

Иногда отправляешь компьютер с Windows 7 в перезагрузку или пытаешься его выключить, а он в процессе этого останавливается, ожидая действий со стороны пользователя. И ждать может до бесконечности. Чаще всего ситуация возникает из-за какой-нибудь программы, которая «продолжает» выполняться.

По умолчанию Windows не должна закрывать сама такие программы. Поскольку, считается, что раз они препятствуют перезагрузке или выключению, то в них могли остаться несохранённые данные. Закрой система их автоматически — данные будут потеряны.

Вроде бы это правильно, но не совсем. На мой взгляд правильнее, чтобы пользователю давалось какое-то время на принятие решения. Допустим 10 секунд, 10 минут или даже час. Этого времени должно быть достаточно. Особенно для десктоп-компьютера. Пользователь явно успеет лишний раз подумать над своими действиями. Если никакой реакции с его стороны не последовало, то его нет рядом. Следовательно лучше закрыть автоматически препятствующие программы.

Почему лучше? Пользователь может работать с компьютером удалённо. Он может находиться в другой части города, или вообще в другом городе/стране. Соответственно, отправленный в перезапуск компьютер для него может быть «потерян» навсегда, пока он не доберётся до него физически и не сделает что-нибудь:

Эта программа не позволяет Windows перезапустить компьютер

Надо полагать, что если пользователь инициировал перезапуск или выключение компьютера собственноручно, то он знает, что делает и это должно быть сделано! Может не мгновенно, но обязательно!

Выше я не зря отметил, что по умолчанию Windows не должна закрывать программы автоматически. Система игнорирует этот принцип в случае, если выполняются какие-либо важные обновления. Нормально!?

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

В общем, чтобы научить Windows 7 (может и других версий) быть более последовательной в своих действиях, во-первых, стоит выключить автоматическую установку обновлений. Лучше выбрать вариант, когда система загружает автоматически обновления и потом лишь уведомляет, что их можно установить:

Настройки обновлений Windows

Во-вторых, делаем настройку, чтобы программы завершались автоматичски, когда это требуется. Для этого открываем редактор реестра и ищем ветку HKEY_CURRENT_USER/Control Panel/Desktop. Здесь есть параметр AutoEndTasks, типа REG_SZ. По умолчанию его значение равно 0, изменяем на 1.

Здесь же есть ещё один важный параметр — WaitToKillAppTimeout, типа REG_SZ, который задаёт время ожидания по прошествии которого программы будут закрываться автоматически. Время задаётся в миллисекундах. Например, 20 секунд = 20000 миллисекунд. К сожалению, слишком большое число Windows не воспринимается, но до минуты (60000) точно можно поставить.

Автозавершение приложений

Данных параметров может не быть. Тогда их нужно создать. Создаётся в данном случае «Строковый параметр».

Чтобы измененные или созданные параметры начали работать компьютер требуется перезапустить.

Некоторые рекомендуют задавать для параметра WaitToKillAppTimeout слишком маленькое значение, типа 10. Таким образом, никакие сообщения о работающих программах просто не будут успевать появляться на экране и Windows будет выключаться или перезапускаться максимально быстро. На мой взгляд это не правильно. Лучше дать пользователю шанс остановить процесс. Хотя бы 10-30 секунд. Вдруг он и правда забыл сохранить что-то важное.

Комментарии