外部ファイルコンソール実行
private ProcessStartInfo ExecuteCMD(string dir, string arg)
{
// ProcessStartInfo の新しいインスタンスを生成する
ProcessStartInfo hPsInfo = new ProcessStartInfo();
// 起動するアプリケーションを設定する
hPsInfo.FileName = "cmd";
// コマンドライン引数を設定する
hPsInfo.Arguments = arg;
// 新しいウィンドウを作成するかどうかを設定する (初期値 false)
hPsInfo.CreateNoWindow = true;
// シェルを使用するかどうか設定する (初期値 true)
hPsInfo.UseShellExecute = false;
// 起動できなかった時にエラーダイアログを表示するかどうかを設定する (初期値 false)
hPsInfo.ErrorDialog = true;
// エラーダイアログを表示するのに必要な親ハンドルを設定する
hPsInfo.ErrorDialogParentHandle = this.Handle;
// アプリケーションを起動する時の動詞を設定する
hPsInfo.Verb = "Open";
// 起動ディレクトリを設定する
hPsInfo.WorkingDirectory = dir;
// 起動時のウィンドウの状態を設定する
//hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; //通常
hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; //非表示
//hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Minimized; //最小化
//hPsInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Maximized; //最大化
return hPsInfo;
}
// ProcessStartInfo を指定して起動する
Process hProcess = Process.Start(ExecuteCMD("c:\TMP","notepad"));
// 終了するまで待機する
hProcess.WaitForExit();
// 不要になった時点で破棄する (正しくは オブジェクトの破棄を保証する を参照)
hProcess.Close();
hProcess.Dispose();