今回のテーマ
こんにちは、サルモリです。
今回は下記のテーマについてやっていきます!
今回のテーマ
メモ帳の起動方法について
今回はProcessクラスを使用して、メモ帳を起動してみましょう。
起動だけではなく、プロセスの終了時を待つメソッドなどにも触れていきます。
Startメソッド メモ帳の起動
メモ帳を起動するには、Processクラスを使用します。
メモ帳のパスを指定し、ProcessクラスのStartメソッドを実行することで、起動できます。
ソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 |
using System; using System.Diagnostics; class Program { static void Main(string[] args) { var path = @"C:\WINDOWS\system32\notepad.exe"; Process.Start(path); } } |
このソースコードを実行すれば、メモ帳が表示されたと思います。
もし実行されなければ、パスの問題と思いますので、notepad.exeがあるフォルダを探して、
パスを書き換えましょう。
Processクラスを指定するには、System.Diagnosticsを指定しなければなりません。
WaitForExitメソッド プロセスの終了を待つ
続けてプロセスの終了を待つメソッドWaitForExitメソッドに触れていきます。
メモ帳では分かりにくいですが、処理の制限時間が設けてあるアプリを起動した時などに使われます。
下記のソースコード例をみてください。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Diagnostics; class Program { static void Main(string[] args) { Console.WriteLine(RunNotepad()); } private static string RunNotepad() { var path = @"C:\WINDOWS\system32\notepad.exe"; using (var process = Process.Start(path)) { if (process.WaitForExit(5000)) { return "5秒以内にプロセスが完了しました"; } return "5秒経ってもプロセスが終了しません"; } } } |
出力結果(5秒以内にメモ帳を閉じた場合)
5秒以内にプロセスが完了しました
出力結果(5秒経ってもメモ帳を起動したまま)
5秒経ってもプロセスが終了しません
このソースコードでは、WaitForExitメソッドの引数を5000ミリ秒(5秒)としています。
5秒間以内にメモ帳が閉じられた場合はif文内の処理が起動します。
時間内終わらない場合は、WaitForExitメソッドの待機時間が終了し、if文内の処理は実行されません。
ProcessStartInfoクラスを使用して細かな制御を行う
続けてメモ帳の拡大化などの制御をしてみましょう。
拡大化にはProcessStartInfoクラスを使用します。
ソースコードを見てみましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.Diagnostics; class Program { static void Main(string[] args) { RunNotepad(); } private static void RunNotepad() { var path = @"C:\WINDOWS\system32\notepad.exe"; var startinfo = new ProcessStartInfo { FileName = path, Arguments = @"D:\test\test.txt", WindowStyle = ProcessWindowStyle.Minimized }; Process.Start(startinfo); } } |
上記のソースコードを実行すると、指定したファイルをメモ帳で起動し、最大化されて表示されるはずです。
Argumentsプロパティで指定したファイルをWindowsStyleプロパティで最大化を指定しています。
まとめ
今回はメモ帳の起動方法について学びました。
プロセスの起動は比較的使用する頻度が高いと思うので、是非覚えてくださいね。
以上、最後まで見て頂きありがとうございました。