Как программно вызвать «Завершение работы», «Перезапуск», «Обновление и завершение работы», «Обновление и перезапуск» изC#

Место общения программистов C#
Anonymous
Как программно вызвать «Завершение работы», «Перезапуск», «Обновление и завершение работы», «Обновление и перезапуск» из

Сообщение Anonymous »

Я хочу вызвать параметры меню «Пуск» («Завершение работы», «Перезапуск», «Обновление и завершение работы» и «Обновление и перезапуск») из моего приложения WinUI 3 C# (с использованием Visual Studio).
Я попробовал завершить работу, вызвав: Shutdown.exe /s /hybrid /t 0
Я считаю, что это правильно; однако я не уверен, нужно ли это вызывать.
Я также попробовал обновить и завершить работу, позвонив:

Код: Выделить всё

[DllImport("advapi32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern bool InitiateShutdown(string lpMachineName, string lpMessage,
uint dwGracePeriod, uint dwShutdownFlags, uint dwReason);

InitiateShutdown(null, null, 0, SHUTDOWN_POWEROFF | SHUTDOWN_INSTALL_UPDATES |
SHUTDOWN_FORCE_OTHERS, SHTDN_REASON_FLAG_PLANNED);
Он вызвал обновление, а затем выключился; однако обновление и завершение работы Windows 11 вызывает перезагрузку, поэтому компьютер перезагружается, выполняет оставшееся обновление, а затем выключается. Это гарантирует, что при открытии компьютера нам не придется ждать новых обновлений.
Поэтому мне нужен правильный метод для вызова этих 4 опций.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ut-down-up

Вернуться в «C#»