问题
Passing a single filename to a context menu shell command is simple:
[HKEY_CLASSES_ROOT\*\shell\MyProgram\Command]
@="program.exe %1"
But if I select multiple files, program.exe is invoked for each such selected file.
What I would like to do instead is invokeprogram.exe only once, passing to it all the filenames currently selected.
How to do this?
回答1:
You may want to look at this post, as it says that this isn't really possible to pass multiple files to a single instance and you must rely on some form of IPC(Inter process Communication).
回答2:
You can use Send To for this. It supports multiple files.
In case this website goes offline:
Open shell:sendto with Windows + R or paste it into your explorer address bar. It should redirect you to:
C:\Users\<yourusername>\AppData\Roaming\Microsoft\Windows\SendTo
Create a shortcut to your program in this folder and you should see it in your explorer right-click menu under Send to
来源:https://stackoverflow.com/questions/6440715/how-to-pass-multiple-filenames-to-a-context-menu-shell-command