是否有可能从应用程序1.exe获取值并使用C#...将这些值传递给应用程序2.exe?

时间:2015-08-26 23:18:35

标签: c# windows winforms

是否可以从应用程序1.exe获取值并使用C#...将这些值传递给应用程序2.exe? 像应用程序1.exe处于运行模式,而应用程序2.exe也在运行。现在假设我想将一些数据从应用程序1.exe传递到应用程序2.exe而无需手动输入数据。是否可以使用C#在自动模式下执行此操作??

3 个答案:

答案 0 :(得分:2)

您所描述的内容称为进程间通信(IPC)。 有很多通信方法,你应该选择的方法基本上取决于时间,同步和空间(即它们的属性)的解耦因素。

Some approaches

存在关于这些方法及其益处/缺点的全部课程。正如评论中指出的那样,我认为这个主题对于SO来说过于宽泛。

快速说明:

  • 时间内解耦在沟通时,所有通信流程是否都必须在线?
  • 空间中解耦沟通流程是否必须相互了解?
  • 解除同步阻止通信?

不同的方法具有不同的属性。

一个例子:

  

方法:消息队列

     

假设:交流方   入队/出队消息

     

属性:及时解耦(消息队列   总是在那里,沟通各方可以在线/离线),

     

在空间中分离(通信方只知道消息   队列),

     

同步解耦? (取决于实施,例如   在空队列上阻止dequeue

Java提供了真正supports a lot of approaches的Java消息服务(JMS),我想必须有C#等价。

答案 1 :(得分:0)

您可以使用MemoryMapping,因此一个应用程序将带识别器的数据写入RAM,其他应用程序将其读取,更多信息可在此处获取:Memory-Mapped Files

这是最简单的方法之一。

答案 2 :(得分:0)

使用IPC的机制有很多方法可以实现它。但是,如果这两个应用程序在同一台机器上运行,你还没有说明吗?

以下是可用于实现目标的列表。