首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Robotjs错误:指定的密钥代码无效

Robotjs错误:指定的密钥代码无效
EN

Stack Overflow用户
提问于 2016-07-30 13:26:37
回答 1查看 684关注 0票数 0

我在index.js中有以下代码

代码语言:javascript
复制
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中也有这段代码,也就是解析到设置变量中的代码。

代码语言:javascript
复制
{
    "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语句时,我都会得到以下错误

代码语言:javascript
复制
Error: Invalid key code specified.

这意味着,正如错误清楚地指出的那样,它得到了一个无效的密钥码。我猜那是我犯的一个愚蠢的错误。我测试的数据等于"dKEY_DRIGHT“。变量string等于这个值,但我需要去掉d,这样它才能正常工作。当我做实时控制台时,我能够通过使用相同的代码来获得我需要的数据,但是当它在文件中运行时出现了一些错误。任何事情都有帮助:)

EN

回答 1

Stack Overflow用户

发布于 2017-03-13 20:52:44

您可以尝试使用node-key-sender将按键发送到您的操作系统。

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

并使用以下命令将键发送到键盘:

代码语言:javascript
复制
var ks = require('node-key-sender');
ks.sendKey('up');

您配置的所有值('a','b',...)被lib接受。您可以直接发送它们。

有关更多信息,请查看文档页面:https://www.npmjs.com/package/node-key-sender

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38670631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档