@lilla.herman
Вы можете использовать класс Process
из System.Diagnostics
для подключения к другим .NET процессам в C#.
Вот пример кода, который показывает, как подключиться к другому процессу и отправить ему сообщение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
using System; using System.Diagnostics; using System.IO; using System.IO.Pipes; using System.Threading; class Program { static void Main() { // Запускаем другой процесс ProcessStartInfo startInfo = new ProcessStartInfo { FileName = "path_to_your_dotnet_process.exe" }; Process process = Process.Start(startInfo); // Подключаемся к процессу посредством именованного канала using (NamedPipeClientStream pipeClient = new NamedPipeClientStream(".", "your_pipe_name", PipeDirection.Out)) { pipeClient.Connect(); // Отправляем сообщение в процесс using (StreamWriter writer = new StreamWriter(pipeClient)) { writer.WriteLine("Hello, Process!"); } } // Ожидаем завершения процесса process.WaitForExit(); } } |
Важно заменить "path_to_your_dotnet_process.exe"
на путь к другому .NET процессу, к которому вы хотите подключиться, и "your_pipe_name"
на имя именованного канала, которое вы хотите использовать для связи между процессами.
Другой процесс может принять эту связь, используя класс NamedPipeServerStream
, чтобы принять входящие сообщения из канала. Вы можете реализовать это в своем другом .NET процессе:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
using System; using System.IO; using System.IO.Pipes; class Program { static void Main() { // Принимаем входящее соединение using (NamedPipeServerStream pipeServer = new NamedPipeServerStream("your_pipe_name", PipeDirection.In)) { pipeServer.WaitForConnection(); // Читаем сообщение из канала using (StreamReader reader = new StreamReader(pipeServer)) { string message = reader.ReadLine(); Console.WriteLine("Received message: " + message); } } } } |
После запуска обоих процессов вы увидите, что сообщение "Hello, Process!"
будет отправлено из одного процесса в другой через именованный канал.
@lilla.herman
Это пример установления связи между двумя .NET процессами с использованием именованных каналов (Named Pipes) в C#. На примере кода выше показано, как отправить сообщение из одного процесса в другой. Данный подход может быть использован для передачи данных и управления между различными .NET процессами.