【问题标题】:Atom Electron capture all keyboard events even when app is unfocused即使应用没有聚焦,Atom Electron 也会捕获所有键盘事件
【发布时间】:2017-01-16 10:45:21
【问题描述】:

我想知道是否有办法使用 Atom Electron 制作应用程序,当用户专注于/不专注于我的应用程序时,该应用程序运行并获取我的键盘事件。

例如,如果他在 Chrome 上写了一些东西,我的应用程序将存储他按下的所有键。我搜索了一下,但没有找到解决我问题的方法。

【问题讨论】:

  • 听起来你在做坏事
  • 此功能可用于监听所有键,例如剪贴板实用程序。但这听起来不像这里的情况。

标签: javascript node.js electron


【解决方案1】:

与您正在寻找的最接近的是全局快捷方式:https://github.com/electron/electron/blob/master/docs/api/global-shortcut.md。虽然您在核心 Electron 中没有任何东西来支持开箱即用地捕获所有键盘事件,但幸运的是 node.js 可以通过 native node addons 很好地扩展。

【讨论】:

    【解决方案2】:

    对于全局快捷方式,您可以使用Electron Keyboard-Shortcuts module

    const {app, globalShortcut} = require('electron')
    
    app.on('ready', () => {
      globalShortcut.register('CommandOrControl+X', () => {
        console.log('CommandOrControl+X is pressed')
      })
    })
    

    但是这个模块只支持快捷键
    如果您需要任何按键监听/挂钩,您应该使用另一个模块,例如 iohook

    const ioHook = require('iohook');
    
    ioHook.on("keyup", event => {
       console.log(event); // {keychar: 'f', keycode: 19, rawcode: 15, type: 'keup'}
    });
    
    ioHook.start();
    

    【讨论】:

      猜你喜欢
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多