c# - 如何在.Net core 3.1 C#中使用ProcessID向多个浏览器广播本机消息
问题描述
[.Net core 3.1 C#] [这组代码只发送消息当前进程]
string sendingData = JsonConvert.SerializeObject(data, utils.GetJsonSerializerSettingCamelcase());
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sendingData.ToString());
Stream stdout = Console.OpenStandardOutput();
stdout.WriteByte((byte)((bytes.Length >> 0) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 8) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 16) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 24) & 0xFF));
stdout.Write(bytes, 0, bytes.Length);
stdout.Flush();
我使用 c# 在 .Net core 3.1 中构建了一个控制台应用程序,并为此应用程序创建了 .EXE。它通过在 Edge/Chrome/Firefox 中加载的扩展使用。当浏览器发起通信时,此代码工作正常。现在我想向所有浏览器扩展发送消息,但它只发送当前进程。我获得了所有进程 ID
Process[] processes = Process.GetProcessesByName("ConsoleApp");
,但我无法向所有进程发送消息。
Process[] utilityProcess = Process.GetProcessesByName("ConsoleApp");
foreach(Process p in utilityProcess)
{
logger.Log(LogLevel.Information, $"Process ID {p.Id.ToString()} Process Name {p.ProcessName}");
logger.Log(LogLevel.Information, $"SendMessage:{JsonConvert.SerializeObject(data)}");
string sendingData = JsonConvert.SerializeObject(data, utils.GetJsonSerializerSettingsCamelCase());
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(sendingData.ToString());
Stream stdout = Console.OpenStandardOutput();
stdout.WriteByte((byte)((bytes.Length >> 0) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 8) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 16) & 0xFF));
stdout.WriteByte((byte)((bytes.Length >> 24) & 0xFF));
stdout.Write(bytes, 0, bytes.Length);
stdout.Flush();
}
在上面的代码中Stream stdout = Console.OpenStandardOutput();
保存当前进程的引用。但我想 Stream stdout = Console.OpenStandardOutput();
保留 p 过程的参考。有没有办法做到这一点?
解决方案
推荐阅读
- javascript - 下载文件多次执行的功能
- angular - 以角度计算并显示在第三列(同一行)中的两个不同列的输入值的总和
- php - cPanel 中的密码重置在 localhost 中无法正常工作
- c# - Unity XML 获取从 xml 列表到 c# 列表的列表值
- grafana - Grafana重复行,在另一个变量中查找文本值
- java - exec jar文件(qt QProcess)时如何打开cmd
- java - 获取字段最大长度
- python - 导入不和谐缩进错误:意外缩进
- javascript - “Error: Nock: No match for request” 如何快速理解不匹配的内容?
- python - 这个程序有什么问题(输出)(如果 elif)(isdigit)