2016-07-30 100 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爲了它的工作。當我執行實時控制檯時,我能夠通過使用相同的代碼獲取我需要的數據,但是當它在文件中運行時somethig出錯。任何東西都有幫助:)

回答

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