【问题标题】:Send data to WPF singleton application from other process从其他进程向 WPF 单例应用程序发送数据
【发布时间】:2014-08-21 05:24:07
【问题描述】:

我有一个 WPF 单例应用程序,其中任何时候只有一个实例在运行,如果用户尝试启动另一个实例,我们检查它是否已经在运行,然后我们终止这个新进程并将现有进程置于前面。

现在,我们需要从另一个进程(可以是 xls、word 或另一个独立应用程序)打开/访问并将消息(参数集)发送到此 WPF 应用程序。 我们还想确保如果进程已经在运行,该进程应该听到消息并做出响应。

知道如何在 WPF 应用程序中实现它

谢谢

【问题讨论】:

  • @NahumLitvin 提供的链接正在讨论如何创建单例应用程序。我的问题是如何将消息(数据)从另一个应用程序传递给这个单例应用程序。

标签: c# wpf singleton inter-process-communicat


【解决方案1】:

在 Windows 上可能最具互操作性的方式是使用 WM_COPYDATA windows 消息在应用程序之间传输数据。

您可以找到一个示例 here 和另一个用于 WPF 的示例 here

【讨论】:

    【解决方案2】:

    MSDN 在communication option in .NET 上提供了一篇不错的文章。

    我个人在 2 个不同的应用程序中两次遇到此问题。

    我们第一次使用基于 TCP 的连接。这确实很有效,但是您需要编写大量代码才能使其正常工作。我们观察到很难定义通信标准,因为开发人员不习惯使用 TCP 连接(至少在我的上下文中)。

    因此,我们第二次使用基于 WCF 的连接。我们的单例 WPF 应用程序托管连接,其他应用程序在可用时连接到它。这是一种更好的体验,因为管理主机服务对于大多数开发人员(曾经使用 Web 服务)来说是非常自然的。另一个优势是,如果需要,您最终可以通过 Web 连接访问您的 WPF 单例。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2018-11-06
      • 2016-03-21
      • 2016-08-09
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      相关资源
      最近更新 更多