2016-07-30 24 views
0

を指定された私はindex.jsRobotjsエラー:無効なキーコードが

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

あなたの運用システムにキーを送信するためにnode-key-senderを試してみてください。

npm install --save-dev node-key-senderでインストールしてください。

とキーボードのキーを送信する使用:

var ks = require('node-key-sender'); 
ks.sendKey('up'); 

をあなたコンフィグ( 'A'、 'B'、...)のすべての値はlibに受け入れられています。それらを直接送ることができます。

詳細については、ドキュメントページを確認してください:https://www.npmjs.com/package/node-key-sender

関連する問題