単一のファイルを引数として取るWindowsシェルのコンテキストメニュー項目を作成するのは簡単です。例については、この質問を参照してください。
しかし、複数のファイルを引数として取るコンテキストメニュー項目をどのように作成しますか?たとえば、diff-mergeツール(私の場合はP4Merge)の場合、同じテクニックが他のアプリケーションにも適用できることは間違いありません。
P4Mergeをインストールしましたが、コンテキストメニューに項目を自動的に追加しないため、手動で追加する必要があります。
私が使ってみたとき:
"C:\Program Files\Perforce\p4merge.exe" %1 %2
コマンドラインとしてエラーが発生しました:
エラー:少なくとも2つのファイルが必要です。ファイルを1つだけ開くことはできません。P4Mergeには0、2、または3つのファイルが必要です。
私が使ってみたとき:
"C:\Program Files\Perforce\p4merge.exe" %0 %1
コマンドラインとして、ファイルごとに1つずつ、2つのP4Mergeのインスタンスを開きました。
正しいファイル名が%0と%1に渡されているようですが、それぞれに対してP4Mergeアプリケーションの異なるインスタンスが実行されています。
現在、SourceGearのDiffMergeツールがあります。これは、シェルコンテキストメニューに項目があり、2つのファイルを選択して、コンテキストメニュー項目を使用してそれらのファイルでdiffを実行できるため、美しく機能します。レジストリを検索してDiffMergeが使用する引数を確認しようとしましたが、引数を含むDiffMergeコマンドラインが見つかりませんでした。