我在index.js
中有以下代码var settingsFile = "config.json";
var settings = JSON.parse(require("fs").readFileSync(settingsFile));
const net = require('net');
const robot = require("robotjs");
const fs = require("fs");
var client;
var customKeys = {
"scroll_up":'robot.scrollMouse(50, "up");',
"scroll_down":"robot.scrollMouse(50,'down');"
}
function startCommunication(address,port) {
client = net.connect({port: port,host:address}, () => {
// 'connect' listener
console.log('connected to server!');
//client.write('world!\r\n');
});
client.on('data', (data) => {
console.log(data.toString());
var string = data.toString();
console.log(settings.keys[string.substr(1)]);
if(string.substr(0,1) == "d") {
robot.keyToggle(settings.keys[string.substr(1)],"down");
} else {
robot.keyToggle(settings.keys[string.substr(1)],"up");
}
//client.end();
});
client.on('end', () => {
console.log('disconnected from server');
});
}
startCommunication(settings.address,settings.port);
我在config.json中也有这个代码,也就是解析为设置变量的内容。
{
"port":5555,
"address":"192.168.1.118",
"keys":{
"KEY_A":"a",
"KEY_B":"b",
"KEY_X":"x",
"KEY_Y":"y",
"KEY_L":"y",
"KEY_R":"t",
"KEY_DUP":"up",
"KEY_DDOWN":"down",
"KEY_DLEFT":"left",
"KEY_DRIGHT":"right",
"KEY_START":"z",
"KEY_SELECT":"q"
}
}
问题是,当我遇到robotjs.togglekeys语句时,我收到错误
Error: Invalid key code specified.
这意味着,由于错误明确指出,它将获得无效的密钥代码。我猜这是我犯的一些愚蠢的错误。我测试中的数据等于" dKEY_DRIGHT"。变量字符串等于那个但我需要摆脱d才能使它工作。当我做实时控制台时,我能够通过使用相同的代码获得我需要的数据,但是当它在文件中运行时会出现问题。任何有用的东西:))
答案 0 :(得分:0)
您可以尝试使用node-key-sender将按键发送到您的操作系统。
使用npm install --save-dev node-key-sender
安装。
使用以下方法将键发送到键盘:
var ks = require('node-key-sender');
ks.sendKey('up');
lib接受你的所有配置值('a','b',...)。你可以直接发送它们。
查看文档页面以获取更多信息:https://www.npmjs.com/package/node-key-sender。