C# 从Windows服务向正在运行的WinForm应用程序发送命令

C# 从Windows服务向正在运行的WinForm应用程序发送命令,c#,winforms,service,C#,Winforms,Service,我有两个独立的程序。一种是winform,它承载一个正在运行的进程,输出/输入通过该窗体重定向。这个过程是罐装产品,几乎不可能自己修改 第二个程序是一个服务,它可以从正在运行的进程中收集数据,但不直接与winform交互 我的目标是将一个字符串从服务发送到winform,然后与正在运行的进程交互。或者,我不介意直接向进程发送命令,但我敢打赌,如果不修改正在运行的进程源代码,这是不可能实现的 我看过命名管道,但我不确定这是最好的方法。两个程序都托管在同一台计算机上。我只是不确定我的选择是什么。有什

我有两个独立的程序。一种是winform,它承载一个正在运行的进程,输出/输入通过该窗体重定向。这个过程是罐装产品,几乎不可能自己修改

第二个程序是一个服务,它可以从正在运行的进程中收集数据,但不直接与winform交互

我的目标是将一个字符串从服务发送到winform,然后与正在运行的进程交互。或者,我不介意直接向进程发送命令,但我敢打赌,如果不修改正在运行的进程源代码,这是不可能实现的


我看过命名管道,但我不确定这是最好的方法。两个程序都托管在同一台计算机上。我只是不确定我的选择是什么。有什么想法吗?=)

实现这种交流有多种选择。您主要可以使用(WCF),

实现这种通信有多种选择。如果概述了Windows中可用的IPC(进程间通信)选项,则主要可以使用(WCF),

全范围

  • 剪贴板
  • COM
  • 数据副本
  • DDE
  • 文件映射
  • 邮箱
  • 管道
  • RPC
  • Windows套接字
然后在窗口之外还有一些机制

  • 或类似
  • 在数据库或文件中记录命令/状态
其中,命名管道可能最适合您的特定应用程序。我过去也用过类似的东西。它们易于设置和使用。

概述了Windows中可用的全部IPC(进程间通信)选项

  • 剪贴板
  • COM
  • 数据副本
  • DDE
  • 文件映射
  • 邮箱
  • 管道
  • RPC
  • Windows套接字
然后在窗口之外还有一些机制

  • 或类似
  • 在数据库或文件中记录命令/状态

其中,命名管道可能最适合您的特定应用程序。我过去也用过类似的东西。它们易于设置和使用。

假设我继续查看命名管道。从我看到的MSDN示例来看,我的服务似乎必须完全生成winform进程。对吗?这会让我的过程有点奇怪lol@Residualfail:否,进程可以彼此独立启动。两个人都不一定是另一个人的孩子。假设我继续研究命名管道。从我看到的MSDN示例来看,我的服务似乎必须完全生成winform进程。对吗?这会让我的过程有点奇怪lol@Residualfail:否,进程可以彼此独立启动。两者都不一定是对方的孩子。