我有一个 C# 应用程序,我想从我的应用程序调用一个函数名称,例如 SendChatMessage(string message, int userid)。但是这个函数属于我计算机上另一个正在运行的基于客户端/服务器的应用程序。我找不到如何做到这一点的方法。
我尝试用反射库来做这个,但失败了。希望有人能帮我解决这个问题。
感谢帮助。
欢迎来到进程间通信的世界。有很多方法可以做到这一点,比如命名管道、RPC、共享内存等。
简而言之,您的程序正在进程内运行。另一个程序正在另一个进程中运行。这就像你父亲试图向隔壁男孩问什么。这些进程可以相互通信并调用彼此的方法,或者使用彼此的数据。但不是武断的或理所当然的。他们需要一些通用的通信标准。
看看这些问题:
如果您无法控制目标进程中的代码,那么听起来您需要使用 DLL 注入的方法将代码注入其中。
如果调用进程不需要确认或响应;然后注入执行方法调用代码的代码可能会浮出水面,但如果需要响应,那么您可能需要在注入的代码中实现某种形式的进程间通信。