none
shutdown.exeからのPCシャットダウンについて RRS feed

  • 質問


  • OS Windows10
    開発 Visual Studio 2017
    言語 C#

    shutdown.exeを使用してPCシャットダウンをしたいのですが、
    ----------------------------------------------------
    サインアウトしようとしています。
    Windowsを1分以内にシャットダウンします。
    ----------------------------------------------------
    と表示され、すぐにシャットダウンされません。

    ※Windowsメニューのシャットダウンを選択するとすぐにシャットダウンが行われます。
    同じ動作としたいです。

    ◆以下プログラム
    ----------------------------------------------------
    // PCシャットダウン
    System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo();
    psi.FileName = "shutdown.exe";
    //コマンドラインを指定
    psi.Arguments = "/s";
    //ウィンドウを表示しないようにする
    psi.UseShellExecute = false;
    psi.CreateNoWindow = true;

    //起動
    System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi);
    ----------------------------------------------------

    何か設定が必要なのでしょうか。
    ご教示お願い致します。

    2020年2月14日 10:17

回答

  • コマンドプロンプトで、shutdown /?とやればオプション一覧が見られますが…。

    直ちにシャットダウンする場合は/pオプションが必要ですね。

    2020年2月14日 10:21
  • ごまのあざらしさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご説明に基づいて、shutdown.exeを使用して事前シャットダウンを実行したいとのことですよね。
    次のコードをご使用いただければと思います。

    var p = new Process();
                p.StartInfo.FileName = "shutdown.exe";
                p.StartInfo.Arguments = "-s -t 60";
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.Start();
                Console.WriteLine("yes");
    

    コマンド-s-t 60は、コンピューターが1分で閉じることを示しています。
    pre-shutshowをキャンセルする場合は、コマンド-aを使用できます。

    このコードはお役に立てれば幸いです。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年2月19日 6:06
    モデレータ

すべての返信

  • コマンドプロンプトで、shutdown /?とやればオプション一覧が見られますが…。

    直ちにシャットダウンする場合は/pオプションが必要ですね。

    2020年2月14日 10:21
  • ごまのあざらしさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    ご説明に基づいて、shutdown.exeを使用して事前シャットダウンを実行したいとのことですよね。
    次のコードをご使用いただければと思います。

    var p = new Process();
                p.StartInfo.FileName = "shutdown.exe";
                p.StartInfo.Arguments = "-s -t 60";
                p.StartInfo.RedirectStandardOutput = true;
                p.StartInfo.UseShellExecute = false;
                p.StartInfo.CreateNoWindow = true;
                p.Start();
                Console.WriteLine("yes");
    

    コマンド-s-t 60は、コンピューターが1分で閉じることを示しています。
    pre-shutshowをキャンセルする場合は、コマンド-aを使用できます。

    このコードはお役に立てれば幸いです。

    どうぞよろしくお願いいたします。

    MSDN/ TechNet Community Support Haruka
    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、 ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~

    2020年2月19日 6:06
    モデレータ