Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to remote invoke another process method from C# application

I have a C# app, i want to call a function name for example SendChatMessage(string message, int userid) from my app.But this function belongs another running client/server based application on my computer. I couldn't find the way how i can do this.

I try to make this with Reflection library but failed. Hope someone help me about this.

Thanks for help.

like image 821
Erdem Alkan Avatar asked Nov 15 '13 10:11

Erdem Alkan


2 Answers

Welcome to the world of Inter-process communication. There are many methods to do this, like named pipes, RPC, shared memory, etc.

In a nutshell, your program is running inside a process. The other program is running inside another process. It's like your father trying to asking something from the boy next-door. These processes can communicate with each other and invoke each other's methods, or use each other's data. But not arbitrarily or course. They need some common standard for communication.

Take a look at these questions:

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#?

like image 100
Saeed Neamati Avatar answered Sep 24 '22 23:09

Saeed Neamati


If you have no control over the code within the target process, then it sounds like you need to use a means of DLL-injection to inject your code into it.

If the calling process does not need an acknowledgement or response; then injecting code that performs method invocation code may surface, but if a response is required then it is likely that you will need to implement some form of inter-process communication within the code being injected.

like image 1
Jamie Pearcey Avatar answered Sep 22 '22 23:09

Jamie Pearcey