たかやまのプログラミング

プログラミング中心のブログです。

C#でプロセスの操作

takym.code.blog


この記事はhttps://takymsystems.blog.fc2.com/blog-entry-57.htmlに転載しました。
前回スクリーンショットを作成するソフトを作りました。
今回はC#でプロセスを操作してみました。
仕様は以下のとうりです。

  • 起動してすぐにメモ帳を起動します。
  • メモ帳が閉じるまで待機します。

ソースコードは以下のとうりです。


Program.cs

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);
        }
    }
}



実行画面です。
f:id:yamato0818:20150120182610j:plain


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

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