你好所有StackOverflowers :)都有美好的一天。
我有一个mouse.exe,这是一个简单的C ++应用程序,通过stdio" getmouse"," setmouse x y"和" movemouse x y",分别获取鼠标位置并设置它......
该应用程序运行正常,可以在运行时接收命令。
我制作了一只鼠标'文件夹中的模块,带有此index.js
const spawn = require('child_process').spawn;
const EXE_ROUTE = __dirname + '\\mouse.exe';
var LOADED = false;
var Mouse = function (ready) {
if(LOADED) return ready && ready();
LOADED = true;
var child = spawn(EXE_ROUTE);
var stdout = Mouse.in = child.stdout;
var stdin = Mouse.out = child.stdin;
var err = Mouse.err = child.stderr;
Mouse.out.write("movemouse 100 100"); // This Works
Mouse.out.write("setmouse 20 20"); // This too
ready && ready();
}
module.exports = Mouse;
我的切入点是app.js
var Mouse = require('./mouse');
Mouse(function () {
console.log("Im here..."); // This prints
Mouse.out.write("movemouse 100 100"); // This does not work.
});
Mouse.out.write("movemouse 100 100"); // This Works :)
我有点困惑,因为回调是在Mouse()函数之后调用的,因此在鼠标下面写一行(function(){...})之间不应该有任何区别;并在回调中写出来......
PD:不要告诉我"你不需要在这里使用回调,bc我会做一些异步任务然后我将需要cb"感谢您的合作。