C#でプロセスの操作

C# (昔のブログから)
01 /20 2015
こんにちは、Takymです。
http://takym-program.hateblo.jp/entry/20150120/1421746843からの転載記事です。(※一部修正しております。)

以下、記事の内容

前回はスクリーンショットを作成するソフトを作りました。 今回は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);
        }
    }
}

実行画面です。

感想

このアプリケーションは応用しないと使い道がないと思いました。

ソースコードのダウンロード

Process.zip
関連記事

コメント

非公開コメント