【发布时间】:2016-02-07 23:55:21
【问题描述】:
好的,所以我正在使用 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 做其他事情,而可执行文件做它的事情。现在我必须等待以确保文件可以被覆盖。
非常感谢任何关于如何做到这一点的意见。
【问题讨论】:
-
如果之前没有声明过ahk,请在前面加上一个var。
-
也许这可以帮助你:NodeJS child process。将参数传递给 .exe:
const bat = spawn('cmd.exe', ['/c', 'my.bat']);
标签: javascript node.js autohotkey stdio