用户右键单击时打开所有文件并选择“打开方式”

我有一个用WPF / C#编写的应用程序,可以将多个文件作为命令行参数。 当我从命令行运行多个文件时,它会打开所有文件。 当我在资源管理器窗口中选择多个文件并将它们拖到应用程序图标时,它会打开所有文件。 但是,如果我在资源管理器中选择多个文件并右键单击,请选择打开方式,然后选择我的应用程序,它只打开最后一个。 有没有办法告诉Windows我的应用程序可以处理多个文件? 我注意到有些程序似乎以这种方式工作,而其他程序则没有。

shell实际上尝试为所选的每个文件启动一个单独的应用程序实例。 您的应用程序需要(a)确保只有第一个实例实际显示其UI,并且(b)进行一些进程间通信以将文件从后面的实例传递到第一个实例。 您可能已经在做(a),但没有(b),这可以解释为什么您只看到一个文件被打开。 请参阅Stephen Toub关于此事的第二个问题(关于“单实例应用程序”的部分)。 您还可能希望阅读有关动态数据交换(DDE)的信息 ,这是在应用程序实例之间传递信息的常用方法。

这是Windows资源管理器的一个问题,只在选定的最后一个文件上运行。 也许这可能会有所帮助: http : //social.technet.microsoft.com/Forums/en-US/w7itproui/thread/1d2e6a3b-6abb-4be9-82ac-447ecdbce201