Андрей
Строганов
aka DJ-Andrey-sXe

Выключить компьютер по завершению произвольной программы

Задача:
по завершению некоторого процесса (имя которого известно) выключить компьютер.

Условия:
использовать только встроенные средства Windows (без скачивания/установки сторонних программ!)

Решение:

Пакетный файл.

@echo off

rem процесс с каким именем ждать
set task=calc.exe

rem интервал отслеживания в секундах
set seconds=5

echo Waiting for termination of %task%:

:loop
tasklist /nh /fi "IMAGENAME eq %task%" | findstr /C:"%task%" > nul
goto label%errorlevel%

:label1
echo Done. Shutting down...
Shutdown /s /f
exit

:label0
echo Still running...
timeout /t %seconds% > nul
goto loop

Как проверить и как пользоваться:
Для тестирования сохраните приведённый код под именем shutdown-on-app-close.cmd, запустите Windows-овский калькулятор, затем только что полученный .cmd-файл. Результат: пока калькулятор работает, эта программа с интервалом в 5 секунд наблюдает за ним, стоит вам закрыть калькулятор — компьютер выключится. Для изменения имени наблюдаемого процесса и интервала проверки «запущенности» :) процесса измените две переменные в начале файла, их имена соответственно task и seconds.