在没有 window 对象的情况下正确记录 JavaScript 中的按键事件
Properly logging keypress events in JavaScript without the window object
我在做一些工作时正在使用节点和 运行 这段代码。我正在尝试自动执行一些点击操作并将我的光标弹回到原来的位置,到目前为止效果很好。不过,我在分配某些键来执行代码时遇到了问题。我想使用 F5 来执行此脚本而不是 's' 或其他任何东西,但是当我记录 F5 的输出时,keychar 的值为 0。所有其他 F 键和各种其他键也会导致这个值,这使得扩展程序变得困难。我做错了什么?
'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
需要一些帮助!
如果您使用 F5
和 Fn
键,我认为您应该使用 event.rawcode == '65300'
。但是,如果您使用 F5
而没有 Fn
键,则 event.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();
我在做一些工作时正在使用节点和 运行 这段代码。我正在尝试自动执行一些点击操作并将我的光标弹回到原来的位置,到目前为止效果很好。不过,我在分配某些键来执行代码时遇到了问题。我想使用 F5 来执行此脚本而不是 's' 或其他任何东西,但是当我记录 F5 的输出时,keychar 的值为 0。所有其他 F 键和各种其他键也会导致这个值,这使得扩展程序变得困难。我做错了什么?
'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
需要一些帮助!
如果您使用 F5
和 Fn
键,我认为您应该使用 event.rawcode == '65300'
。但是,如果您使用 F5
而没有 Fn
键,则 event.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();