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

» 2004年04月16日 05時00分 公開

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「.NET TIPS」のインデックス

連載目次

 プログラム内からほかのアプリケーションを実行するには、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://atmarkit.itmedia.co.jp/fdotnet/");

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

// コンパイル方法:csc procstart.cs

ほかのアプリケーションを実行するC#のサンプル・プログラム
procstart.csのダウンロード

' 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://atmarkit.itmedia.co.jp/fdotnet/")

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

  End Sub
End Class

' コンパイル方法:vbc /r:System.dll procstart.vb

ほかのアプリケーションを実行するVB.NETのサンプル・プログラム
procstart.vbのダウンロード

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

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

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

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

カテゴリ:クラス・ライブラリ 処理対象:Windows環境
使用ライブラリ:Processクラス(System.Diagnostics名前空間)

「.NET TIPS」のインデックス

.NET TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。