我正在使用 Node 并在做一些工作时运行此代码。我正在尝试自动执行一些点击并将光标快速返回到原来的位置,到目前为止效果很好。不过,我在分配某些键来执行代码时遇到问题。我想使用 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();
我正在使用 robotsjs 和 ihook。
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();
关于javascript - 在没有窗口对象的情况下正确记录 JavaScript 中的按键事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45003422/