Node.js JavaScript:在服务器上模拟Keypress(像宏一样)

Nim*_*aid 7 javascript irc node.js

我正在尝试使用node.js脚本来模拟按键,例如向上箭头或按钮.具体来说,我正在尝试克隆Twitch Plays Pokemon.基本上,每当通过IRC发送命令(向上,向下,向左,向右,a,b,选择,开始)时,服务器模拟按键,按键控制游戏模拟器.到目前为止,我已经用node.js的IRC模块编写了这个:

var config = {
    channels: ["#tron"],
    server: "irc.freenode.net",
    botName: "wyatt"
};

var irc = require("irc");

var bot = new irc.Client(config.server, config.botName, {
    channels: config.channels
});

var commandHandler = function(from, text) {
    if(text.toLowerCase() === "up"||text.toLowerCase() === "down"||text.toLowerCase() === "left"||text.toLowerCase() === "right"||text.toLowerCase() === "a"||text.toLowerCase() === "b"||text.toLowerCase() === "select"||text.toLowerCase() === "start") {
        bot.say(config.channels[0], from.toUpperCase() + " sent the " + text.toUpperCase() + " command!");
    } else {
        bot.say(config.channels[0], from.toUpperCase() + ", that wasn't a valid command!");
    }
};

bot.addListener("message", function(from, to, text, message) {
    commandHandler(from, text);
});
Run Code Online (Sandbox Code Playgroud)

要运行我的脚本,我将节点scriptName.js键入命令提示符.我使用的是Windows 7.

这连接到freenode频道#tron,我将其用于测试目的,因为它似乎主要处于休眠状态.

当用户输入一个接受的命令时,它会发送一条消息,如"NIMAID发送LEFT命令!",否则它会发送"NIMAID,这不是一个有效的命令!".事实上,它完美无瑕.所以我需要做的就是找到一种发送按键的方法,最后的脚本只是一个switch语句.

麻烦的是,我可以通过搜索互联网找到的任何参考文献都谈到在浏览器环境中使用node.js,使用JQuery或类似的东西.我需要将按键发送到模拟器.

tldr:我需要将一个node.js脚本的按键发送到在Windows 7服务器桌面上运行的应用程序.

有没有办法做到这一点?

Kyl*_*sen 5

我也做了一个节点模块来做到这一点:https : //github.com/kylepaulsen/kbm-robot

var robot = require("kbm-robot");

robot.startJar();

robot.press("alt")
    .press("tab")
    .sleep(100)
    .release("tab")
    .release("alt")
    .sleep(100)
    .typeString("Hello World!")
    .go()
    .then(robot.stopJar);
Run Code Online (Sandbox Code Playgroud)


Stu*_*ley 3

显然,npm 注册表中有一个win_keyboard模块,有人编写它来控制 Windows 中的键盘。您可以运行npm install win_keyboard并使用它;它似乎完全符合您的要求。