从其他进程向WPF单例应用程序发送数据
本文关键字:应用程序 数据 单例 WPF 其他 进程 | 更新日期: 2023-09-27 18:18:51
我有一个WPF单例应用程序,其中任何时候只有一个实例在运行,如果用户试图启动另一个实例,我们检查它是否已经运行,然后我们杀死这个新进程,并把现有的进程带到前面。
现在,我们需要从另一个进程打开/访问并向这个WPF应用程序发送消息(参数集),这个进程可以是xls、word或另一个独立的应用程序。我们还希望确保如果进程已经在运行,该进程应该听到消息并响应。
知道如何在我们的WPF应用程序中实现它吗
谢谢
可能在Windows上最具互操作性的方式是使用WM_COPYDATA Windows消息在应用程序之间传输数据。
你可以在这里找到一个例子,在这里找到另一个WPF的例子。
MSDN提供了一篇关于。net中通信选项的很好的文章。
我个人在两个不同的应用程序上都遇到过这个问题。
第一次使用基于TCP的连接。这确实很有效,但您需要编写大量代码才能使其工作。我们观察到的是,很难定义一个通信标准,因为开发人员不习惯使用TCP连接(至少在我的环境中)。
因此,我们第二次使用基于WCF的连接。我们的单例WPF应用程序托管连接,其他应用程序在可用时连接到它。这是一种更好的体验,因为管理主机服务对大多数开发人员来说是非常自然的(习惯于使用web服务)。另一个优点是,如果需要的话,您可以通过web连接最终访问您的WPF单例。希望能有所帮助。