例えばデスクトップに「メモ帳」(notepad.exe)のショートカットを作っておくと、そのショートカットにテキストファイルをドラッグ&ドロップすればメモ帳で開くことができるようになります。このようにアプリケーションの実行ファイル(EXEファイル)や実行ファイルへのショートカットにファイルをドラッグ&ドロップした時、そのファイルを開くには、どのファイルがドロップされたのかを知る必要があります。ここでは、その方法について説明します。
実行ファイルやシュートカットにドロップされたファイルのパスは、アプリケーション起動時のコマンドライン引数として取得することができます。コマンドライン引数を取得する方法は「起動時のコマンドライン引数を取得する」で説明していますが、例えばEnvironment.GetCommandLineArgsメソッドを使用すると簡単です。
次の例では、Environment.GetCommandLineArgsメソッドを使うことにより、ドロップされたファイルのパスを列挙しています。
'コマンドライン引数を配列で取得する Dim files As String() = System.Environment.GetCommandLineArgs() If files.Length > 1 Then '配列の要素数が2以上の時、コマンドライン引数が存在する Console.WriteLine("次のファイルがドロップされました") '配列の先頭には実行ファイルのパスが入っているので、 '2番目以降がドロップされたファイルのパスになる Dim i As Integer For i = 1 To files.Length - 1 Console.WriteLine(files(i)) Next Else '配列の要素数が1の時、コマンドライン引数は存在しない Console.WriteLine("ドロップされたファイルはありませんでした") End If
//コマンドライン引数を配列で取得する string[] files = System.Environment.GetCommandLineArgs(); if (files.Length > 1) { //配列の要素数が2以上の時、コマンドライン引数が存在する Console.WriteLine("次のファイルがドロップされました"); //配列の先頭には実行ファイルのパスが入っているので、 //2番目以降がドロップされたファイルのパスになる for (int i = 1; i < files.Length; i++) { Console.WriteLine(files[i]); } } else { //配列の要素数が1の時、コマンドライン引数は存在しない Console.WriteLine("ドロップされたファイルはありませんでした"); }
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。