Я хочу создать процесс, который использует shutdown.exe для выключения компьютера по истечении заданного времени.Процесс Shutdown.exe с несколькими аргументами, не работает
Вот мой код:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "shutdown.exe";
startInfo.Arguments = "–s –f –t " + seconds;
Process.Start(startInfo);
Где секунд является ИНТ локальной переменной, пользователь решает.
Когда я запускаю свой код, ничего не происходит. Но когда я вручную перейду в командной строке cmd и введите:
shutdown.exe - s -f -t 999
затем Windows сделает всплывающее окно и сообщит, что система отключится через 16 минут.
Причина, по которой я считаю, что это из-за множества аргументов, заключается в том, что мой метод прервать текущее завершение работы системы (где я создал системное управление вручную из командной строки). Это почти то же самое, за исключением startInfo.Argument:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = "shutdown.exe";
startInfo.Arguments = "-a";
Process.Start(startInfo);
ли ваша машина на самом деле отключение после 16 минут с несколькими аргументами? Вы пробовали это с секундами = 1? Причина, по которой я спрашиваю, заключается в том, что мне интересно, имеет ли значение тот факт, что вы устанавливаете WindowStyle в Hidden? – JohnL
Наверное, бесполезная мысль здесь, но ничего не знающая о вашем исполняемом файле, что произойдет, если вы укажете 'UseShellExecute = true'? –
Все еще ничего не происходит, когда изменяю код: startInfo.Arguments = "-s -f -t 1"; Я знаю, что что-то не так, потому что я могу быстро увидеть подсказку cmd, где он показывает, что команда не набрана правильно. Мне удалось получить снимок экрана: [ссылка] (http://img215.imageshack.us/img215/8954/shutdowntimer.png) – Toby