对文件关联的dde最好的.net替代方法是什么?

时间:2009-08-13 15:32:05

标签: .net vb.net registry file-association

我有一个MDI Windows窗体应用程序(.net 2008),允许用户将各种文件类型与应用程序相关联。我目前使用类似这样的注册表项来执行此操作,这会导致应用程序通过命令行加载和访问文件名:

Registry.SetValue(appKey & "\shell\open\command", "", """" & _
  System.Windows.Forms.Application.ExecutablePath & """ ""%1""")

在应用程序的pre-.net版本中,我使用了DDE(注册表中的ddeexec)。如果在Windows资源管理器中双击文件时正在执行应用程序实例,则会在不启动应用程序的新实例的情况下打开该文件。

现在DD已经被Microsoft弃用了,在.net中,在Explorer中双击文件时执行MDI应用程序打开附加文件的最佳方式是什么,而不是启动应用程序的新实例?

1 个答案:

答案 0 :(得分:1)

理想情况下,您可以使用常规文件关联技术(doc)以及某种形式的进程间通信来组织程序处理后续启动的方式。

例如,当程序启动时,检查另一个实例是否已打开。如果是这样,将任何参数数据传递给现有实例,然后退出。然后,现有实例会适当地处理数据。

这里(link)是一个很好的答案,可以帮助您开始。