Как происходит выключение программы?
Он вызывает функцию Win32 API ExitWindowsEx() , которая выполняет магическое действие, зависящее от версии Windows, чтобы попросить компоненты системы выключить компьютер. В JdeBP есть статья о том, что будет дальше (в Windows Vista/7/8).
(Есть также несколько других функций выключения.)
Как это обходить выключение -a?
Не давая вам времени запустить shutdown -a
в первую очередь. Выключение начинается немедленно. (shutdown -a
не может отменить текущее завершение работы; оно может только отменить запланированное.)
Выключится ли из-за программы shutdown, если shutdown.exe отсутствует?
Да. Практически все программы вызывают функции Win32 API напрямую.
На самом деле, программы не работали бы для многих пользователей , если они используют shutdown.exe.