我有一个 MDI Windows 窗体应用程序 (.net 2008),它允许用户将各种文件类型与该应用程序关联。我目前使用类似这样的注册表项来执行此操作,这会导致应用程序通过命令行加载和访问文件名:
Registry.SetValue(appKey & "\shell\open\command", "", """" & _
System.Windows.Forms.Application.ExecutablePath & """ ""%1""")
在应用程序的 .net 之前版本中,我使用了 DDE(注册表中的 ddeexec)。如果在 Windows 资源管理器中双击文件时正在执行应用程序的实例,则它将打开该文件,而无需启动应用程序的新实例。
既然 Microsoft 已弃用 DDE,那么当在资源管理器中双击文件时,执行 MDI 应用程序在 .net 中打开其他文件(而不是启动应用程序的新实例)的最佳方式是什么?
理想情况下,您可以使用常规文件关联技术(doc),以及某种形式的进程间通信,以组织程序如何处理后续启动。
例如,当您的程序启动时,检查另一个实例是否已打开。如果是这样,请将任何参数数据传递给现有实例,然后退出。然后现有实例适当地处理数据。
Here (link)是一个很好的答案,可以帮助您开始这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)