2014年05月25日

C#で外部の実行ファイルを呼び出し

   このエントリーをはてなブックマークに追加 Clip to Evernote
どう書く?orgに感謝を込めて」シリーズ その10

■問題 (出題者:ところてん さん)
外部の実行ファイルを呼び出して実行してください。 ただし、実行中にプログラムの実行をブロックする版と、しない版の二つを作ってください。

Processクラスを使えばできますね。それほど難しくありませんね。
RunAndWaitと Runメソッドを作成。Runでは、パラメータ付きで呼び出す例としてみました。

■C#で書いたコード
using System.Diagnostics;
using System;

namespace Doukaku.Org {
    class Program {
        static void Main(string[] args) {
            // mspaint.exeを起動し、終わるまで待つ
            int code = RunAndWait("mspaint.exe");

            // 上のmspaint.exeが終わらないと、次のNotepad.exeは起動しない
            Process p = Run("notepad.exe","a.txt");

            // 直ぐに、Runメソッドから制御が戻る。このプログラムが終了しても、
            // notepad.exeは終わらない。
        }

        // ブロックする版 (終了するまで待って、制御を当プログラムに戻さない)
        static int RunAndWait(string cmd) {
            ProcessStartInfo psi = new ProcessStartInfo(cmd);
            Process process = Process.Start(psi);
            process.WaitForExit();
            return process.ExitCode;
        }

        // ブロックしない版
        static Process Run(string cmd, string param) {
            Process process = new Process();
            process.StartInfo.FileName = cmd;
            process.StartInfo.Arguments = param;
            process.Start();
            return process;
        }
    }
}


 

この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/gushwell/52369855