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

时间:2010-04-22 10:07:47

标签: c# .net

我想在我的.Net应用程序的同一个实例中打开在资源管理器中双击的文件,例如在新标签中。我怎么能这样做?

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

4 个答案:

答案 0 :(得分:3)

您可以查看this post,其中说明了可用于拥有单个实例WinForms应用程序的技术。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果你想要做同样的事情,但是在WPF而不是WinForms中,这里解释了howto:What is the correct way to create a single-instance application?

答案 3 :(得分:0)

使用TCP套接字的示例: http://pieterjan.pro/?a=Projecten_csharp_DrawIt.php

  1. 在表单
  2. 上启动TCPListener
  3. 在第二个实例的主要部分中连接TCPClient
  4. 通过TCP连接将ActivationArguments发送到表单
  5. 同时适用于多个文件,甚至第一次用于多个文件(当应用程序尚未启动时)

    最重要的代码块是:

    1. 启动服务器并将端口号写入文件的MainForm(Hoofdscherm)的构造函数。第一个文件也会打开。
    2. Main-function(Program.cs),其中第二个,第三个......实例在第一个实例中连接到TcpListener并通过套接字发送文件名
    3. 源代码可在按钮" Broncode"

      上找到