【问题标题】:Properly logging keypress events in JavaScript without the window object在没有窗口对象的情况下正确记录 JavaScript 中的按键事件
【发布时间】:2017-07-10 03:33:51
【问题描述】:

我在做一些工作时正在使用节点并运行此代码。我正在尝试自动化一些点击并将我的光标捕捉回它的原始位置,这到目前为止运行良好。不过,我在分配某些键来执行代码时遇到问题。我想使用 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

希望得到一些帮助!

【问题讨论】:

    标签: javascript node.js events keypress


    【解决方案1】:

    如果您将F5Fn 键一起使用,我认为您应该使用event.rawcode == '65300'。但是如果你使用 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();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 2016-11-30
      • 2010-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多