System.Diagnostics.Processクラスを使うと、任意のアプリケーションを起動することが出来る。
使い方は、ProcessクラスとProcessStartInfoクラスのインスタンスを生成し、ProcessStartInfoインスタンスに適切な設定を行い、その設定をProcessインスタンスにセットしてプロセスをスタートする、という流れになる。
以下に簡単なサンプルコードを示す。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace InvokeProcessLesson
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
/// <summary>
/// メモ帳を起動する
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("notepad");
process.StartInfo = startInfo;
process.Start();
}
/// <summary>
/// Firefoxを起動する
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button2_Click(object sender, EventArgs e)
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo("firefox");
startInfo.Arguments = "http://www.yahoo.co.jp";
process.StartInfo = startInfo;
process.Start();
}
}
}
このプログラムはWindowsFormで出来ており、あらかじめFormにボタンが2つ追加してある。
1つ目のボタンを押すとメモ帳が起動する。
2つ目のボタンを押すとFirefoxが起動する(Firefoxがインストールされていることが必要)。
ここでは、44行目でProcessStartInfoのArgmentsプロパティにYahooのアドレスをセットしてみた。
Firefoxの場合は、ここにインターネットアドレスが設定されているとそのページが起動時に表示される。
実行すると以下のようになる。
メモ帳を起動

Firefoxを起動

ピンバック: 【C#】Processで起動したアプリの標準出力をリダイレクトする – ザワプロ!