簡體   English   中英

使用child_process從nodejs app運行控制台應用程序

[英]running console application from nodejs app using child_process

我正在嘗試使用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 <<“some string”)預期行為:對於ConsoleApplication4的每個實例 - 打開控制台窗口並創建新進程實際行為:沒有控制台窗口,沒有進程創建。 但是“啟動控制台應用程序”字符串打印在控制台上(從nodejs應用程序啟動)ConsoleApplication.exe位於nodejs應用程序所在的同一文件夾中如果用某個窗口應用程序(記事本或計算)替換ConsoleApplication.exe - 它可以工作。 問題 - 這段代碼中缺少什么? 我是否需要從控制台應用程序手動捕獲控制台?
你的幫助會很有幫助。
提前做出來的

如果從控制台運行控制台應用程序,它仍將在同一控制台中運行。 Windows控制台只是在通過資源管理器運行控制台應用程序時自動打開的便利。

您可以自己嘗試:首先打開cmd.exe ,然后運行ConsoleApplication.exe 它不會打開一個新窗口; 輸出將顯示在提示下方。 然后你會得到另一個。

如果要顯示窗口,可以手動運行cmd

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

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

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

並在C ++中添加一行:

getch();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM