将多个文件/文件夹从Windows资源管理器传递到外部应用程序

时间:2010-02-23 03:50:50

标签: c# contextmenu argument-passing windows-explorer

您是否有人知道如何让Windows资源管理器将多个文件/文件夹传递到注册表中引用的外部应用程序(c#)?

我目前能够使用%1语法对单个文件/文件夹进行操作,但不确定如何让资源管理器传递多个项目。

有谁知道怎么做?

3 个答案:

答案 0 :(得分:2)

我认为这不可能。

使用资源管理器打开多个文件时,它将为文件启动程序的单独副本。我认为不可能覆盖这种行为。

编辑:我忘了shell扩展了。这是可能的。

要解决此问题,您可以使后续副本与第一个副本进行通信,然后退出。详细说明超出了本答复的范围。

答案 1 :(得分:2)

在资源管理器中选择多个文件时,将调用shell上下文菜单扩展的IShellExtInit :: Initialize方法,并且pdtobj包含选择。 注意不支持编写托管shell扩展。

答案 2 :(得分:0)

为了可靠地执行此操作,您需要编写一个shell扩展,很可能是sendto实现。

自vb6以来我没有写过,但你可以找到一个好的托管示例 here

或者您可以使用freeware utility