【问题标题】:running console application from nodejs app using child_process使用 child_process 从 nodejs 应用程序运行控制台应用程序
【发布时间】:2014-01-24 01:54:42
【问题描述】:

我正在尝试使用 child_process 从 nodejs 运行控制台应用程序的实例(写在 cpp 上)。 这是代码:

function startSingleApp() {
    console.log("startSingleApp entered");

    var exec = childProcess.exec;
    var appOut;
    exec("./ConsoleApplication.exe"  ,function callback(error, stdout, stderr){
        appOut = stdOut;
        console.log("started console app");
    });
};

ConsoleApplication4 只打印字符串(cout 您的帮助会很有帮助。
提前谢谢

【问题讨论】:

    标签: node.js child-process


    【解决方案1】:

    如果您从控制台运行控制台应用程序,它仍将在同一个控制台中运行。 Windows 控制台只是在您通过资源管理器运行控制台应用程序时自动打开的一种便利。

    您可以自己尝试:先打开cmd.exe,然后运行ConsoleApplication.exe。它不会打开一个新窗口;输出将出现在您的提示下方。然后你会得到另一个。

    如果你想显示一个窗口,你可以手动运行cmd

    exec("cmd /c ConsoleApplication.exe", function callback(error, stdout, stderr) {
        appOut = stdOut;
        console.log("started console app");
    });
    

    【讨论】:

    • 感谢您的快速回复 - 但它仍然无法正常工作
    • 怎么不工作?你真的需要窗户吗?您是否检查过回调传递的error 参数?
    • 一些更新:目前它将日志打印到与 nodejs 相同的控制台。我删除了控制台应用程序末尾的等待键输入。感谢您的帮助
    【解决方案2】:

    您可以使用start 来创建一个新的控制台窗口,如下所示:

    exec("start ConsoleApplication.exe", ....)
    

    并在您的 C++ 中添加一行:

    getch();
    

    【讨论】:

    • 如果您添加类似 getch() 或 cin>>keyToRead 的内容,则它不起作用。删除后 - 您可以看到控制台输出。无论如何感谢您的回复
    猜你喜欢
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    相关资源
    最近更新 更多