【问题标题】:Node JS run a c# programNode JS 运行一个c#程序
【发布时间】:2021-02-11 10:51:34
【问题描述】:

我用 C# 编写了一个简单的程序,它每 5 秒保存到一个文本文件。我还使用node.js在electron中做了一个程序,有没有办法可以通过electron启动C#程序?

我尝试将 C# 程序编译为 exe 并以这种方式运行,但我无法让它工作。

任何帮助将不胜感激!

回答 问题是我的C#文件需要以管理员身份运行,我使用了下面的函数;

var exec = require('child_process').execFile;

var fun =function(){
   console.log("fun() start");
   exec('HelloJithin.exe', function(err, data) {  
        console.log(err)
        console.log(data.toString());                       
    });  
}
fun();

【问题讨论】:

  • 您能否指定:“我无法让它工作。”你有什么错误吗?
  • 您可以使用IPC从渲染器向主线程发送请求并启动exe进程。检查此 Q/A Execute an exe file using node.js
  • 感谢您的帮助,我使用了您链接的功能,并且必须以管理员身份运行我的节点 js。谢谢!

标签: c# node.js electron


【解决方案1】:

您可以使用 nodejs 运行一个启动 c# 程序的命令。

const { exec } = require("child_process");

exec("cmd /K 'C:\SomeFolder\MyApp.exe'", (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
});

免责声明:我没有测试它,因为我现在不在 Windows 上

来源:

【讨论】:

  • 虽然我没有收到任何错误,但似乎程序实际上并没有运行,有没有一种简单的方法可以强制文件在节点 js 中以管理员身份运行。谢谢
  • cmd /K 'C:\SomeFolder\MyApp.exe' 可能不起作用。选项 1:更改它,以便您不需要管理员权限。选项 2:如果您需要管理员权限,我建议将管理员内容放在 c# 程序中,因为在 nodejs 中以管理员身份运行命令在 Windows 上并不容易。否则我认为这个site 将是最好的包。这不仅会启动您的程序,还会使用它创建一个服务,这不是您想要的。
猜你喜欢
  • 2016-04-23
  • 2016-01-17
  • 1970-01-01
  • 1970-01-01
  • 2019-10-14
  • 2018-11-08
  • 1970-01-01
  • 1970-01-01
  • 2016-10-12
相关资源
最近更新 更多