Node.js JavaScript:在服务器上模拟按键(像macros一样)

我想获得一个node.js脚本来模拟按键,如向上的箭头或一个button。 具体来说,我试图做一个克隆Twitch玩口袋妖怪 。 基本上,每当一个命令(上,下,左,右,a,b,select,开始)通过IRC发送,服务器模拟按键,反过来控制一个gameboy模拟器。 到目前为止,我已经为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); }); 

为了运行我的脚本,我将节点scriptName.jsinput到命令提示符中。 我正在使用Windows 7。

这连接到我用于testing目的的ftronode通道#tron ,因为它似乎主要处于hibernate状态。

当用户input其中一个命令时,它会发送一条消息,比如“NIMAID发送了LEFT命令!”,否则会发送“NIMAID,这不是一个有效的命令!”。 事实上,它的工作完美无瑕。 所以我需要做的就是find一个发送按键的方法,最后的脚本只是一个switch语句。

麻烦的是,我可以通过search互联网find的任何引用谈到在浏览器环境中使用node.js,使用JQuery或类似的东西。 我需要发送按键到模拟器。

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

有没有办法做到这一点?

我一直在研究一个跨平台的Node.js模块,这个模块很棒! 到目前为止,您可以发送击键,键入string,移动鼠标并单击,并获取像素的颜色。

https://github.com/octalmage/robotjs

对于Windows – 我使用节点的执行function来运行一个python脚本,调用pywin32的键盘事件。 对于Linux,你可以使用xdotool。

这是我调用它的文件。 我也为节目使用节点 。

我也做了一个节点模块: 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); 

显然,在npmregistry中有一个win_keyboard模块,有人写信来控制Windows中的键盘。 你可以运行npm install win_keyboard并使用它; 它似乎正是你想要的。

您可以尝试RobotJS的替代scheme。 这是一个非常小的,仍然是跨平台库发送密钥到您的操作系统称为节点密钥发件人。 RobotJS和kbm-robot感到沮丧后,我开发了。

npm install --save-dev node-key-sender安装它。

并发送一个文本到键盘使用:

 var ks = require('node-key-sender'); ks.sendText('This is my text'); 

查看文档页面: https : //www.npmjs.com/package/node-key-sender 。