Вызов TaskKill для отзывчивого процесса. Он также принудительно завершает его?

Вызов TaskKill для отзывчивого процесса. Он также принудительно завершает его?

Я знаю, что можно использовать Windowsутилита taskkillдля "уничтожения" неотвечающего процесса. Но что произойдет, если я вызову его для процесса, который запущен и не имеет проблем — попытается ли taskkill сначала завершить его обычным образом?

P.S. Причина, по которой я спрашиваю, заключается в том, что я хочу использовать taskkill из скрипта для закрытия одной программы, но я не буду его использовать, если он «насильно» завершает процесс программы, не дав ей сначала завершиться «корректно».

решение1

По умолчанию утилита taskkill отправит процессу сигнал WM_CLOSE. Это тот же сигнал, который отправляется при нажатии красного крестика в заголовке окна.

Хорошо написанное приложение будет прослушивать этот сигнал, инициировать очистку и закрытие.

Если он завис, он не сможет этого сделать, и поэтому считается неотзывчивым. Taskkill будет ждать нормального завершения работы, а затем запросит у пользователя безусловное завершение работы.

Вы можете использовать параметр /f, чтобы сразу перейти к безусловному завершению работы.

Поэтому, отвечая на ваш вопрос, если вы хотите не закрывать приложение принудительно, используйте taskkill без параметра /f.

Связанный контент