.net - 使用多个文件作为资源管理器的参数打开程序一次

标签 .net vb.net explorer contextmenu single-instance

我有一个程序可以使用资源管理器中的右键菜单打开一个文件。但是,如果我选择多个文件,然后右键单击并使用我的程序打开,那么它会打开我的程序的多个实例,而不是仅仅将多个文件作为参数传递给单个实例。该程序是用 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/

相关文章:

c# - 您可以让扩展器覆盖 WPF 中的其他可视化树元素吗?

asp.net - VB.NET 查询字符串有参数

Java 文件列表的顺序与 Window 资源管理器相同

javascript - window.open 在 IE 中不工作

python - 在不产生黑色外壳窗口的情况下启动 GUI 进程

c# - 从 Web 服务 XML 响应中提取键值对

c# - EF5 收到此错误消息 : Model compatibility cannot be checked because the database does not contain model metadata

c# - 检测当前是否启用 DST

.NET ORM for Database 没有定义主键

c# - Wix 卸载整个网站而不仅仅是应用程序