好的,我正在使用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 的内容。但是我对这些标准不太了解。
我的当前解决方案是使用 Node.js 将要执行的命令写入磁盘中的 .txt 文件,以及一个单独的 .exe 文件,该文件读取 .txt 并执行命令并退出。这个方法可行,但速度较慢,并且感觉不太好。 此外,我希望它是异步的或同步的?其中一种方式可以让我在可执行文件完成任务时继续使用 Node.js 做其他事情。现在我必须等待以确保文件可以被覆盖。
非常感谢您提供有关如何做到这一点的任何建议。
const bat = spawn('cmd.exe', ['/c', 'my.bat']);
- ronIDX