У нас есть приложение (С#/. NET), работающее на встроенной цели Windows, которая требует, чтобы машина была отключена нажатием одной кнопки. В идеале я хотел бы, чтобы программа выходила и выполняла очистку (включая установку подключенного оборудования в безопасное состояние) до завершения работы. Но, раз как только программа закрылась, я не могу выполнить команду shutdown! Так это можно сделать?
Конечно, это можно сделать, и это очень легко.
Запустите процесс, который выдает "shutdown/s", THEn выйдет из вашей программы.
Как отключить компьютер от С# отсюда:
Работы, начинающиеся с Windows XP, недоступны в выигрыше 2000 или ниже:
Это самый быстрый способ сделать это:
Process.Start("shutdown","/s /t 0");
В противном случае используйте P/Invoke или WMI, как говорили другие.
Внедрите событие Application.ApplicationExit
(winforms), которое будет вызываться в любом случае, когда ваше приложение закрывается.
Для WPF:
qaru.site/questions/544171/...
С С# лучший способ отключить:
shutdown.exe /f /r /t 0
Выполните код через Process.Start(..)
и ваш компьютер немедленно начнет процесс останова.
Конечно, прежде чем выполнять это, вы должны выполнить свои процедуры "очистки".