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);
secondsが int ローカル変数である場合、ユーザーが決定します。
コードを実行しても何も起こりません。しかし、手動で cmd プロンプトに移動して次のように入力すると、
shutdown.exe - s -f -t 999と入力
すると、Windows によってポップアップが表示され、システムが 16 分以内にシャットダウンすることが通知されます。
複数の引数が原因だと思う理由は、進行中のシステムシャットダウンを中止する方法が機能するためです(cmdプロンプトからsystemshutdownを手動で作成した場合)。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);