从 node.js 启动一个 exe,并在它们之间发送数据

Launching an exe from node.js, and send data between them

好的,我正在使用 node.js 中的 socket.io 创建一个网页。 这很好用,数据会按原样发送到每个设备。 现在我想扩展,用node.js来控制我的电脑

我读过这个:Child Process 并获得运行可执行文件的代码,并在控制台中打印其输出。

var spawn = require('child_process').spawn;

var ahk = spawn('outsideNode.exe');
ahk.stdout.on('data', function(data){
    console.log(data.toString());
});

这是启动的 outsideNode.exe 的代码或脚本。 为此,我正在使用 AutoHotKey。

Loop,10
{
    FileAppend,External program spawned by Node.js says hi!,*
    Sleep,1000
}
ExitApp

这是一种方法。 Node.js 捕获 AHK 的输出。现在,我遇到的问题是,如何从 node.js 发送数据?我如何在 AHK 收到它? 我确实相信我需要阅读有关 stdio 的内容。但我是 std 的新手。

我当前的解决方案是使用 Node.js 将一个 .txt 文件写入磁盘,其中包含我要提供的命令,以及一个单独的 .exe 文件,该文件读取 .txt 并执行命令并退出。这行得通,但速度很慢,而且这样做感觉不对。
另外,我希望它是异步的还是同步的?在可执行文件做它的事情时,我可以用 node.js 做其他事情。现在我必须等待以确保文件可以被覆盖。

非常感谢任何关于如何做到这一点的意见。

可以选择将参数传递给生成的应用程序。也许这已经是您正在寻找的东西。如何处理 exe 中的参数是与其他一些编程语言相关的另一个问题。在节点中,子进程 运行 异步和非阻塞,这就是您要找的。 但是,如果你想在程序之间进行通信,你可以像这样写入子进程的标准输入:

child.stdin.write("here you go");

您的 exe 必须能够等待 stdin 才能处理传入的数据。