即使应用程序未聚焦,Atom Electron也会捕获所有键盘事件

时间:2016-09-08 13:15:03

标签: javascript node.js electron

我想知道是否有办法使用Atom Electron运行并在用户未关注我的应用时获取键盘事件。

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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();