Является завершением работы.exe необходимо для выключения Windows?

файл C:windowssystem32shutdown.exe необходимо для выключения или перезагрузки Windows?

30
задан Peter Mortensen
21.05.2023 8:21 Количество просмотров материала 2711
Распечатать страницу

4 ответа

твой вопрос конечно же возникает из вашего ответа на https://codegolf.stackexchange.com/a/24011/18907 , в частности kinokijuf прокомментируйте первоначальный пересмотр вашего ответа.

As kinokijuf сказал, что Windows не Unix. На Unices и Linux,shutdown действительно участвует в процессе полного завершения работы. Это программа, которая посылает предупреждающие сообщения для зарегистрированных пользователей и, что пишет /run/nologin файл для предотвращения дальнейшего входа в систему пока перед запланированным временем выключения.

в Windows NT это не так.

действие "завершение работы" на "кнопку питания" в меню Пуск Проводника Windows, пункт меню "завершение работы" в Диспетчере задач,REBOOT /S в TCC или Take Command и других прикладных программах, которые позволяют вам завершать работу системы, все инициируют завершение работы, непосредственно вызывая один из двух вызовов Win32 API:InitiateSystemShutdownEx() или ExitWindowsEx(). Они не делают вещи косвенно, запустив shutdown программа. (На самом деле для этого требуется больше кода, чем просто вызов вызова Win32 API.) The shutdown программа, когда один делает локальное завершение работы, вызывает те же вызовы Win32 API тоже.

на самом деле winlogon,csrss и smss это программы, которые завершают работу Windows NT. В частности, это winlogon, который выполняет основную работу по обработке отложенных запросов на выключение.

более дальнеишее чтение

31
отвечен JdeBP 2023-05-22 16:09

нет.

проводник не вызывает эту команду при завершении работы из меню Пуск.

завершение работы системы возможно с помощью вызова Win32 API (ответ@JdeBP предоставляет подробную информацию об этом, если он заинтересован). Команда - это просто удобный способ сделать это из сценария, запланированной задачи или диалогового окна Выполнить.

55
отвечен LawrenceC 2023-05-22 18:26

Как объясняет ultrasawblade (upvote), завершение работы системы является вызов Win32 API для: ExitWindowsEx

ссылка также имеет пример того, как реализовать завершение работы из C. Кроме того, вы можете сделать это из C# с помощью P/Invoke (Platform Invoke). pinvoke.net имеет кучу подписей для использования:http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html

8
отвечен thepip3r 2023-05-22 20:43

не надо. shutdown.exe это просто утилита для выключения локального или удаленного компьютера. Это выглядит как shutdown.exe использует родной APIs NtShutdownsystem. В то время как Windows использует ExitWindowsEx (как уже упоминалось).

4
отвечен stderr 2023-05-22 23:00

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх