.NET TIPS

ほかのアプリケーションを実行するには?

デジタルアドバンテージ
2004/04/16

 プログラム内からほかのアプリケーションを実行するには、Processクラス(System.Diagnostics名前空間)のstaticなメソッドであるStartメソッドを使用するのが最も簡単な方法だ。実行しようとするアプリケーションのパス名をパラメータに指定するだけでよい。アプリケーションをパラメータやオプション付きで実行するには、2つのパラメータを取るバージョンのStartメソッドを利用する。

 ProcessクラスのStartメソッドを利用したサンプル・プログラムを以下に示す。

// procstart.cs

using System.Diagnostics;

public class ProcessStart {
  static void Main() {

    // 実行ファイルを指定して実行
    Process.Start(@"C:\Program Files\Windows Media Player\mplayer2.exe");

    // パラメータを指定して実行
    Process.Start("notepad.exe", @"C:\boot.ini");

    // 拡張子が登録されているファイルを指定
    Process.Start(@"C:\boot.ini");

    // URLを開く
    Process.Start("http://www.atmarkit.co.jp/fdotnet/");

    // フォルダを開く
    Process.Start(@"C:\");
  }
}

// コンパイル方法:csc procstart.cs
ほかのアプリケーションを実行するC#のサンプル・プログラム
 
' procstart.vb

Imports System.Diagnostics

Class ProcessStart
  Shared Sub Main()

    ' 実行ファイルを指定して実行

    Process.Start("C:\Program Files\Windows Media Player\mplayer2.exe")

    ' パラメータを指定して実行
    Process.Start("notepad.exe", "C:\boot.ini")

    ' 拡張子が登録されているファイルを指定
    Process.Start("C:\boot.ini")

    ' URLを開く
    Process.Start("http://www.atmarkit.co.jp/fdotnet/")

    ' フォルダを開く
    Process.Start("C:\")

  End Sub
End Class

' コンパイル方法:vbc /r:System.dll procstart.vb
ほかのアプリケーションを実行するVB.NETのサンプル・プログラム

 プログラム後半の3つの呼び出しは、アプリケーションではなく、拡張子がアプリケーションに関連付けられているファイル、URL、フォルダ名をそれぞれ指定してアプリケーションを起動している。例えばINIファイルをStartメソッドのパラメータに指定した場合には、(Windowsでの設定を変えていなければ)メモ帳が起動して、そのファイルが開かれる。URLを指定した場合にはブラウザ(デフォルトではInternet Explorer)が起動してそのページに移動する。フォルダ名を指定した場合にはエクスプローラによりそのフォルダが開かれる。

 このような挙動は、Windowsの[スタート]メニューにある[ファイル名を指定して実行]を実行して開くダイアログ・ボックスでアプリケーションやファイル名、URLなどを指定した場合と同じだ。これらはどちらもWindowsシステムの機能(シェルの機能)を利用しているためである。

[ファイル名を指定して実行]ダイアログ・ボックス
このダイアログは[スタート]メニューにある[ファイル名を指定して実行]により開く。ここでは、アプリケーションのパス名やコマンド名、拡張子がアプリケーションに関連付けられているファイル、URL、フォルダ名などを指定して実行することができる。

 このダイアログでエラーになるような場合、つまり指定したアプリケーションが存在しない場合や、ファイルの拡張子がアプリケーションに関連付けられていない場合などはStartメソッドでもエラーとなり例外が発生する。サンプル・プログラムでは省略しているが、外部リソースを扱うStartメソッドでは例外処理は必須である。End of Article

カテゴリ:クラス・ライブラリ 処理対象:Windows環境
使用ライブラリ:Processクラス(System.Diagnostics名前空間)
 
この記事と関連性の高い別の.NET TIPS
ほかのアプリケーションを実行してその終了を待つには?
コマンド・プロンプトを表示せずにコンソール・アプリケーションを実行するには?[C#、VB]
アプリケーション設定を活用するには?
[ASP.NET]ページから生成されたソース・コードを見るには?
ClickOnceアプリの起動時にパラメータを渡すには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH