C# 如何在应用程序的同一实例中打开关联文件

C# 如何在应用程序的同一实例中打开关联文件,c#,.net,C#,.net,我想在我的.Net应用程序的同一实例中打开在资源管理器中双击的文件,例如在新选项卡中。我该怎么做 现在,每个文件都会启动我的应用程序的新实例。许多程序可以在同一实例中打开文件,例如Opera和Notepad++,因此,有一种简单的方法可以确定。可能是一种更简单的方法,但我所做的方法是,如果一个实例以文件名作为参数启动,那么它会检查是否有其他实例,如果有,则将文件名传递给该实例并关闭它本身。您可以看看哪种方法说明了一种技术可以使用它来创建一个单实例WinForms应用程序。如果您也希望这样做,但在

我想在我的.Net应用程序的同一实例中打开在资源管理器中双击的文件,例如在新选项卡中。我该怎么做


现在,每个文件都会启动我的应用程序的新实例。许多程序可以在同一实例中打开文件,例如Opera和Notepad++,因此,有一种简单的方法可以确定。

可能是一种更简单的方法,但我所做的方法是,如果一个实例以文件名作为参数启动,那么它会检查是否有其他实例,如果有,则将文件名传递给该实例并关闭它本身。

您可以看看哪种方法说明了一种技术可以使用它来创建一个单实例WinForms应用程序。

如果您也希望这样做,但在WPF而不是WinForms中,这里将解释如何使用:

使用TCP套接字的示例:

  • 在表单上启动TCPListener
  • 在第二个实例的main中连接TCPClient
  • 通过TCP连接将ActivationArguments发送到表单
  • 同时适用于多个文件,甚至第一次适用于多个文件(应用程序尚未启动时)

    最重要的代码块是:

  • MainForm(Hoofdscherm)的构造函数,其中启动服务器并将端口号写入文件。第一个文件也将打开
  • 主函数(Program.cs),其中第二个、第三个。。。实例在第一个实例中连接到TcpListener,并通过套接字发送文件名
  • 源代码可在“Broncode”按钮上找到