C#:外部アプリケーションを起動する

C#:外部アプリケーションを起動する C#

C#のフォームアプリから外部のアプリケーションを起動する手順を説明します。

結論から言うとProcessクラスを使って起動を行うことができます。

プロジェクトの作成

ファイル >新規作成 >プロジェクト… からWindowsフォームアプリケーションを選択してください。

プロジェクト名は外部アプリケーションを起動するとしておきます。

フォームにボタンを1つ貼り付けてください。

C#:外部アプリケーションを起動する

準備は、以上です。

外部アプリケーションを起動する手順

外部のアプリケーションを起動するためのプロセス管理するクラスが、.NET Frameworkクラスライブラリに標準で用意されています。

Processクラス

手順としては、

1.Processクラスのインスタンスを作成。
2.プロパティStartInfo.FileNameに起動したいアプリケーション名を設定
3.ProcessクラスのStartメソッドを実行

となります。

例として、Windowsのメモ帳を起動するプログラムを示します。

Process myProcess = new Process();
myProcess.StartInfo.FileName = "notepad.exe";
myProcess.Start();

これをそのままボタンクリックイベントなどに貼り付けると、外部アプリケーションを起動するプログラムになります。

Processクラスは、System.Diagnosticsのクラスのため、プログラム先頭に
using System.Diagnostics;の記述が必要になります。
上記例ではアプリケーション名のみ指定していますが、その場合、起動したいアプリケーションのPATHがWindowsのPATHに設定されている必要があります。

実行イメージ

このプログラムでは、プロセスが既に起動されているかのチェックをしていないためボタンを押すたびにメモ帳が起動します。

C#:外部アプリケーションを起動する

プログラム全体を示します。

今回のプログラム(Form1.cs)全体

ボタンイベント(button1_Click)は、配置したボタンをダブルクリックして作成してください。

別の方法(ツールボックスのprocessを使う)

Processクラスをインスタンス化しないで外部アプリケーションを呼び出す方法もあります。
ツールボックスのProcessをフォームに貼り付けるだけです。

C#:外部アプリケーションを起動する

貼り付けた状態(フォームの下に配置される)
C#:外部アプリケーションを起動する

その際自動的にprocess1(デフォルト値:プロパティで変更可能)というインスタンスが生成されるので、プログラムは、インスタンス生成部分を省いて以下のように使います。
その際、using System.Diagnostics;の記述は必要ありません。

process1.StartInfo.FileName = "notepad.exe";
process1.Start();

コメント

タイトルとURLをコピーしました