「更新してシャットダウン」の翌日の悲劇に遭わないために その3

前回はこちら

必要なソフトウェアの機能はこの3つ。

  1. Windowsの更新が待ち構えているかを判別する機能
  2. 現在実行中のアプリケーションの「待った!」を待たずに強制再起動する機能:これがないと「●●個のアプリを閉じて、シャットダウンします」なる画面に阻まれて再起動が始まらなくなってしまう。
  3. 再起動後、シャットダウンする機能

前回の記事で、1つ目の機能はWindowsに同梱されているCOMライブラリで実現できそうなことが分かった。

と同時に、Windowsアプリケーション(*.exe)、特にC#プログラムなら比較的簡単に実現できそうだな、と思った。

今回は2つ目の機能の実現性について調べてみる。


2.現在実行中のアプリケーションの「待った!」を待たずに強制再起動する機能

Windows 10に標準で含まれているプログラム「shutdown.exe」を使う方法がお手軽そうだ。

Win32 APIやWMIを使う方法もあるらしいけど、今回作ろうとしているのはWindows 10限定のものだし、あえて面倒な方法を採る理由もないだろう。

shutdown.exe は Windows XP以降に標準で搭載されていて、Windowsのバージョンによって使い方が微妙に異なるらしいけど、Windows 10で強制的に全プロセスを終了して再起動するためにはshutdown.exeを次のようにオプション付きで実行すればよい。

shutdown -r -f

かんたんっ

-r は「再起動するよ」という意味で、-f は「実行中のプロセスがあっても強制的に閉じちゃうよ」という意味。

つまり、このコマンドを実行すると、「実行中のプロセスは強制的に閉じつつ、再起動する」ことができる。

で、これをC#プログラムから実行したい訳だけど、.NET Framework の System.Diagnostics.Processクラスで次のようにすればいけそう。(まだ試してない)


次はいよいよ、最後の機能「再起動後、シャットダウン」の実現性について調べてみよう。

次回はこちら

コメントする