*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*

<C#>

コマンドライン引数を指定して、他プロセス起動する


*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*


「<C#> Processクラスによるプロセス起動と、名前付きパイプによるプロセス間通信」

における一連の説明(知恵ノート)において、ここでは、

「<C#> コマンドライン引数を指定して、他プロセス起動する」

について説明します。






総合の目次


本ページを含めた関連事項の総合目次です。

http://note.chiebukuro.yahoo.co.jp/detail/n376363







はじめに


自分で作るプロセスから、他のプロセスを起動することが可能です。

Processと言うクラスを使えば、他プロセスを起動することが可能です。

その際に、本サンプルでは、コマンドライン引数を指定して、他プロセスを起動します。

 

なお、コマンドライン引数とは、コマンドライン(コマンドプロンプト)からアプリケーションソフトを実行する際に、アプリケーション名と共に指定するパラメーターです。

例えば、Windowsに付属しているメモ帳は、コマンドラインでアプリケーション名の

 

notepad

 

を入力すると起動します。

ただし、開きたいテキストファイルを指定して、メモ帳を起動することも可能です。

たとえば、c:data.txt と言うテキストファイルを指定して、メモ帳を起動する場合は、コマンドラインで、

 

notepad "c:data.txt"

 

とします。

この例の場合では、"c:data.txt" の部分が、コマンドライン引数です。

なお、上記は、コマンドラインでの操作ですが、本サンプルでは、プログラムのコード上で操作します。








サンプルコード


ここで取り上げるサンプルは、なるべく複雑にならない範囲で、他プロセス起動を確かめられるものとします。






本サンプの仕様概要


起動するアプリケーションソフトのファイル名は、

notepad.exe

とします(この notepad.exe は、Windowsに付属している「メモ帳」と言うソフトです)。
また、コマンドライン引数は、

 

"c:data.txt"

 

とします。

本サンプルのボタンをクリックすると、上記アプリケーションソフトが起動する仕様とします。



フォームデザイン等の前準備


コードを記述する前に、フォームのデザイン作成などの、以下の前準備を行なって下さい。

<プロジェクトの作成>
本サンプルの確認用に、新規にプロジェクトを作成して下さい。
プロジェクトの種類は、「Windowsフォームアプリケーション」です。

<フォームのデザイン>
デザイン画面で、ボタン(button)を1個貼り付けて下さい。

<イベントプロシージャの作成>
また、デザイン画面で先ほど貼り付けたボタン1(button1)をダブルクリックして、button1_Click() メソッドを作って下さい。







コード




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


// コマンドライン引数を指定して、他プロセス起動する
namespace ProcessBasicSample2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        //============
        // ボタンがクリックされた時に実行されるイベントプロシージャ
        private void button1_Click(object sender, EventArgs e)
        {

            // プロセス起動制御用のProcessクラスのオブジェクトを生成
            System.Diagnostics.Process prog = new System.Diagnostics.Process();


            // 起動するプロセスを指定
            prog.StartInfo.FileName = "notepad.exe";


            // コマンドライン引数を指定
            prog.StartInfo.Arguments = "c:memo.txt";


            // プロセスの起動開始
            prog.Start();

        }


    }
}



コードの解説


サンプルコードの中に書かれていますコメントを読んで下さい。
すなわち、コードの解説は、基本的にサンプルコードの中に書かれているコメントとします。





実行結果


ボタンをクリックすると、対象のアプリケーションソフトが起動します。





さいごに

 

取りあえず、基本事項を紹介しました。

今後のサンプルも、しばらくは基本事項の解説ですが、いずれは実用的なサンプルを紹介する予定です。