我有一个程序可以使用资源管理器中的右键菜单打开一个文件。但是,如果我选择多个文件,然后右键单击并使用我的程序打开,那么它会打开我的程序的多个实例,而不是仅仅将多个文件作为参数传递给单个实例。该程序是用 vb.net 编写的,但不是 windows 窗体,它只是一个模块,所以我可以在 Visual Studio 的属性中勾选 Single instance 选项。
那么如何在单个实例中从资源管理器上下文菜单中打开多个文件。
最佳答案
这里没有满意的答案,Windows 资源管理器没有提供一种简单的方法来启动程序并传递所有选定的文件。这需要 shell context menu handler ,它们很难用托管代码编写。直到 .NET 4.0 都无法安全地编写。
然而,使用 VB.NET 中可用的应用程序框架来模拟它很容易,使您的应用程序成为单例并实现 StartupNextInstance event .唯一的问题是这不是特别快。而且它在控制台模式应用程序中不起作用。
关于.net - 使用多个文件作为资源管理器的参数打开程序一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2703856/