C#のフォームアプリから外部のアプリケーションを起動する手順を説明します。
結論から言うとProcessクラスを使って起動を行うことができます。
プロジェクトの作成
ファイル >新規作成 >プロジェクト… からWindowsフォームアプリケーションを選択してください。
プロジェクト名は外部アプリケーションを起動するとしておきます。
フォームにボタンを1つ貼り付けてください。
準備は、以上です。
外部アプリケーションを起動する手順
外部のアプリケーションを起動するためのプロセス管理するクラスが、.NET Frameworkクラスライブラリに標準で用意されています。
手順としては、
1.Processクラスのインスタンスを作成。
2.プロパティStartInfo.FileNameに起動したいアプリケーション名を設定
3.ProcessクラスのStartメソッドを実行
2.プロパティStartInfo.FileNameに起動したいアプリケーション名を設定
3.ProcessクラスのStartメソッドを実行
となります。
例として、Windowsのメモ帳を起動するプログラムを示します。
Process myProcess = new Process(); myProcess.StartInfo.FileName = "notepad.exe"; myProcess.Start();
これをそのままボタンクリックイベントなどに貼り付けると、外部アプリケーションを起動するプログラムになります。
Processクラスは、System.Diagnosticsのクラスのため、プログラム先頭に
using System.Diagnostics;の記述が必要になります。
using System.Diagnostics;の記述が必要になります。
上記例ではアプリケーション名のみ指定していますが、その場合、起動したいアプリケーションのPATHがWindowsのPATHに設定されている必要があります。
実行イメージ
このプログラムでは、プロセスが既に起動されているかのチェックをしていないためボタンを押すたびにメモ帳が起動します。
プログラム全体を示します。
今回のプログラム(Form1.cs)全体
ボタンイベント(button1_Click)は、配置したボタンをダブルクリックして作成してください。
別の方法(ツールボックスのprocessを使う)
Processクラスをインスタンス化しないで外部アプリケーションを呼び出す方法もあります。
ツールボックスのProcessをフォームに貼り付けるだけです。
貼り付けた状態(フォームの下に配置される)
その際自動的にprocess1(デフォルト値:プロパティで変更可能)というインスタンスが生成されるので、プログラムは、インスタンス生成部分を省いて以下のように使います。
その際、using System.Diagnostics;の記述は必要ありません。
process1.StartInfo.FileName = "notepad.exe"; process1.Start();
コメント