2017-07-10 23 views
0

我在使用節點並運行此代碼的同時執行一些工作。我試圖自動化一些點擊並將光標恢復到原來的位置,目前效果很好。不過,我遇到了分配某些密鑰來執行代碼的問題。我想使用F5來執行這個腳本而不是's'或其他任何東西,但是當我記錄F5的輸出時,keychar的值是0.所有其他F鍵和其他各種鍵也會導致這個值,這使得擴大計劃變得困難。我究竟做錯了什麼?在沒有窗口對象的JavaScript中正確記錄按鍵事件

'use strict'; 
var robot = require("robotjs"); 
var ioHook = require('iohook'); 
robot.setMouseDelay(20); 

ioHook.on("keypress", event => { 
if(event.keychar == '116') { 
    var currentPosition = robot.getMousePos(); 
    console.log(currentPosition); 
    robot.moveMouse(1735, 1019); 
    robot.mouseClick("left"); 
    robot.setMouseDelay(3); 
    robot.moveMouse(currentPosition.x, currentPosition.y); 
}  
    console.log(event.keychar); 
    //{keychar: 'f', keycode: 19, rawcode: 15, type: 'keypress'} 
}); 
ioHook.start(); 

我正在使用robotjs和iohook。

https://robotjs.io/ 
https://github.com/WilixLead/iohook 

想得到一些幫助!

回答

1

我認爲你應該使用event.rawcode == '65300'如果你正在使用F5Fn鍵。但如果您使用F5而沒有Fnevent.rawcode == '65474'

所以,你的代碼將是這樣的:

var robot = require("robotjs"); 
var ioHook = require('iohook'); 
robot.setMouseDelay(50); 
ioHook.on("keypress", event => { 
if(event.rawcode == '65300'||event.rawcode == '65474') { 
    var currentPosition = robot.getMousePos(); 
    console.log(currentPosition) 
     robot.moveMouse(1735, 1019); 
     robot.mouseClick("left"); 
     robot.setMouseDelay(20); 
     robot.moveMouse(currentPosition.x, currentPosition.y); 
     } 
}); 

ioHook.start(); 
相關問題