1

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

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

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

既然 DDE 已被 Microsoft 弃用,那么在 .net 中,当在资源管理器中双击文件时,执行 MDI 应用程序打开附加文件的最佳方式是什么,而不是启动应用程序的新实例?

4

1 回答 1

1

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

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

这里(链接)是一个很好的答案,可以让你开始。

于 2009-08-13T19:10:00.863 回答