|
.NET TIPS
WPFでコマンドライン引数を取得するには?[C#、VB、2.0、3.0、3.5]
デジタルアドバンテージ 一色 政彦
2009/05/28 |
|
|
コンソール・アプリケーションやWindowsアプリケーションをコマンドラインから実行するとき、実行可能ファイル(.EXEファイル)の指定に続けて、(オプションとして)引数(以降、コマンドライン引数)を指定することがある。このコマンドライン引数により、アプリケーションの動作を実行ごとやバッチ・ファイル単位でカスタマイズすることが可能になる。このようなコマンドライン引数は、当然、WPF(Windows Application Foundation)アプリケーションでも利用できる。
これには、まずWPFアプリケーションのApp.xamlファイルに対してStartupイベント・ハンドラを追加する。これは、App.xamlファイルの<Application>タグに「Startup属性」を手動で追加するとよい(※Visual Studio利用時)。次の画面は実際にStartup属性を追加しているところだ。
|
|
|
<Application>タグへのStartup属性の追加 |
Startup属性を追加しようとすると、上の画面のように、IntelliSenseに[<新しいイベント ハンドラ>]という項目が表示されるので、これをダブルクリックする。
これにより、App.xamlファイルのコードビハインド・ファイルであるApp.xaml.csにApplication_StartupメソッドがStartupイベント・ハンドラとして追加される。
このApplication_Startupメソッドには、sender(=object型オブジェクト)とe(=System.Windows名前空間のStartupEventArgsクラスのオブジェクト)の2つのパラメータがあり、StartupEventArgsオブジェクト(=パラメータ「e」)のArgsプロパティにより、コマンドライン引数を文字列型配列として取得できる。
例えば、コマンドライン引数をチェックして「/mode1」や「/mode2」が指定されている場合にはその文字列を、またそれ以外が指定されている場合は「未知の引数:<指定された引数の内容>」という文字列を、メッセージボックスに表示するコードは次のようになる。
private void Application_Startup(object sender, StartupEventArgs e)
{
foreach (string arg in e.Args)
{
switch (arg)
{
case "/mode1":
MessageBox.Show(arg);
break;
case "/mode2":
MessageBox.Show(arg);
break;
default:
MessageBox.Show("未知の引数:" + arg);
break;
}
}
}
|
Private Sub Application_Startup(ByVal sender As System.Object, ByVal e As System.Windows.StartupEventArgs)
For Each arg As String In e.Args
Select Case arg
Case "/mode1"
MessageBox.Show(arg)
Case "/mode2"
MessageBox.Show(arg)
Case Else
MessageBox.Show("未知の引数:" + arg)
End Select
Next
End Sub
|
|
コマンドライン引数をチェックしてメッセージボックスで表示するサンプル・コード(上:App.xaml.cs、下:App.xaml.vb) |
このプログラムをコマンドラインから実行する際に、例えば「/mode1 /unkown」というコマンドライン引数を付けると、「/mode1」と表示するメッセージボックスと「未知の引数:/unkown」と表示するメッセージボックスが続けて表示される。
利用可能バージョン:.NET Framework 2.0以降
カテゴリ:WPF/XAML 処理対象:アプリケーション
使用キーワード:<Application>タグ
使用ライブラリ:StartupEventArgsクラス(System.Windows名前空間) |
|
generated by
|
|
Insider.NET 記事ランキング
本日
月間