単一のファイル名をコンテキストメニューに渡すシェルコマンドは簡単です。
[HKEY_CLASSES_ROOT\*\Shell\MyProgram\Command]
@="program.exe %1"
しかし、複数のファイルを選択すると、program.exe
はeachそのような選択されたファイルに対して呼び出されます。
代わりにやりたいのはinvokeprogram.exe
1回だけ、現在選択されているすべてのファイル名を渡します。
これを行う方法?
この投稿 を確認することをお勧めします。これは、複数のファイルを1つのインスタンスに渡すことは実際には不可能であり、何らかの形式のIPC(プロセス間通信)に依存する必要があるためです。
これには 送信先 を使用できます。複数のファイルをサポートします。
このウェブサイトがオフラインになった場合:
Shell:sendto
をWindows + R
で開くか、エクスプローラーのアドレスバーに貼り付けます。次の場所にリダイレクトされます。
C:\Users\<yourusername>\AppData\Roaming\Microsoft\Windows\SendTo
このフォルダにプログラムへのショートカットを作成すると、エクスプローラの右クリックメニューのSend to
の下に表示されます。