如何从C#应用程序中远程调用另一个过程方法

问题描述:

我有一个C#应用程序,我想从我的app中调用函数名称SendChatMessage(字符串消息,int用户标识符)。但此函数属于另一个正在运行的客户端/服务器在我的电脑上应用。我找不到如何做到这一点的方式。如何从C#应用程序中远程调用另一个过程方法

我试图用反射库做到这一点,但失败了。希望有人能帮我解决这个问题。

感谢您的帮助。

+3

您是否在其他程序中控制源代码,或者是否要将这些命令注入进程?那么你可能不得不使用DLL注入来对另一个应用程序进行“控制”。 – NoLifeKing

+0

你是否拥有其他应用程序?其他应用程序是否允许其他进程调用方法? – Rob

+1

[使用c#从另一个进程调用函数]的可能的重复(http://*.com/questions/15767482/using-c-sharp-to-call-a-function-from-another-process) –

欢迎来到Inter-process communication的世界。有很多方法可以做到这一点,如命名管道,RPC,共享内存等。

简而言之,您的程序在进程内运行。另一个程序正在另一个进程中运行。这就像你父亲试图从隔壁的男孩那里问一些事情。这些进程可以相互通信并调用彼此的方法,或者使用彼此的数据。但不是任意或当然。他们需要一些通信标准。

这些问题请看:

What is the simplest method of inter-process communication between 2 C# processes?

What is the best choice for .NET inter-process communication?

What is the easiest way to do inter process communication in C#?

+1

谢谢你的回答,但是如果我有其他程序代码的控制权,这个答案正确。但我没有控制其他程序的源代码。 –

如果你有在目标进程中的代码无法控制,那么它听起来像你需要使用DLL注入手段将代码注入到其中。

如果调用过程不需要确认或响应;那么注入执行方法调用代码的代码可能会出现,但是如果需要响应,那么您可能需要在被注入的代码内部实现某种形式的进程间通信。