我正在通过处理对象从c#加载电子。我想通过过程对象(进程间通信)将数据从C#传递到电子(nodejs)。
我已经通过标准输入以C#传递了数据。但是我无法通过标准输出获取节点中的数据。
C#代码用于加载电子并通过标准输入传递数据。
var process = new System.Diagnostics.Process();
var startInfo = new System.Diagnostics.ProcessStartInfo
{
WorkingDirectory = @"desktopApp",
WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal,
FileName = @"electron.exe",
RedirectStandardInput = true,
UseShellExecute = false,
//CreateNoWindow = true,
Arguments = "app"
};
process.StartInfo = startInfo;
process.Start();
StreamWriter myStreamWriter = process.StandardInput;
myStreamWriter.WriteLine("jsonData\n"); //Data string passing
myStreamWriter.Close();
process.WaitForExit();
Electron main.js获取数据。下面的事件根本不会触发。
process.stdout.on('data', (jsonData) => {
console.log("data", jsonData);
});
答案 0 :(得分:1)
现在有一个库,用于通过STDIN / STDOUT将Electron转换为C#。这是文章:https://www.blinkingcaret.com/2019/02/27/electron-cgi/