Попробуйте это, здесь я жестко запрограммировал значения часов, минут и выключения, вы можете установить эти значения с помощью текстовых полей.
private void button1_Click(object sender, EventArgs e) {
string shutdown = "-s"; // -s -> shutdown
int hour = 1 * 60 * 60; //3600 seconds
int minute = 1 * 60; //60 seconds
int second = 1; //1 seconds
int totalSeconds = hour + minute + second; //total seconds should be : 3661
Process.Start("Shutdown", shutdown + " -t " + totalSeconds + @" -c ""Windows is going to shutdown!"""); // -t = time , -c = comments
}
Кроме того, если вы хотите прервать отключение, вы можете использовать эту строку кода, Process.Start("Shutdown", "-a");