前回はスクリーンショットを作成するソフトを作りました。
今回はC#でプロセスを操作してみました。
仕様は以下のとうりです。
- 起動してすぐにメモ帳を起動します。
- メモ帳が閉じるまで待機します。
ソースコードは以下のとうりです。
using System;
using System.Diagnostics;
using System.Threading;
// 名前空間とクラスの名前が同じなので名前を変える。
using ProcessControl = System.Diagnostics.Process;
namespace Process
{
class Program
{
static void Main(string[] args)
{
// 起動するファイルの設定。
ProcessStartInfo psi = new ProcessStartInfo();
// 起動すファイル。
psi.FileName = "C:\\Windows\\notepad.exe";
// シェルを使用しない。
psi.UseShellExecute = false;
// プロセスを開始する。
ProcessControl pc = ProcessControl.Start(psi);
// ループの初期化。
char[] bars = { '/', '―', '\', '|' }; int i = 0;
Console.CursorVisible = false; Console.ForegroundColor = ConsoleColor.Magenta;
while (true)
{
Console.Write(bars[i]);
Console.Write(" 待機中です。");
Console.SetCursorPosition(0, Console.CursorTop);
// ファイルが終了するまで待機。
if (pc.HasExited) break;
i++; if (i >= 4) i = 0;
Thread.Sleep(100);
}
pc.WaitForExit();
Console.CursorVisible = true; Console.ResetColor();
// コンソールウィンドウが閉じないようにする。
Console.WriteLine("続行するには何かキーを押してください......");
Console.ReadKey(true);
}
}
}
実行画面です。
感想
このアプリケーションは応用しないと使い道がないと思いました。