我希望知道是否有一种使用Atom Electron制作应用程序的方法,在用户关注/不关注我的应用时可以运行并获取我的键盘事件。
例如,如果他在Chrome上写东西,我的应用程序将存储他按下的所有键。我进行了一些搜索,但没有找到解决我的问题的方法。
我希望知道是否有一种使用Atom Electron制作应用程序的方法,在用户关注/不关注我的应用时可以运行并获取我的键盘事件。
例如,如果他在Chrome上写东西,我的应用程序将存储他按下的所有键。我进行了一些搜索,但没有找到解决我的问题的方法。
对于全局快捷键,您可以使用Electron Keyboard-Shortcuts 模块
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();
根据文档,使用globalShortcut将会在任何情况下应用键盘快捷方式,即使我们的窗口没有处于焦点状态。但是,如果您只想监听应用程序窗口内的按键事件,则可以使用普通的keyup
,keydown
事件。但这是一种稍微麻烦的方法,因为要将这些事件从渲染进程传递到主进程,我们必须设置预加载脚本。
您可以从此文章中了解有关从渲染进程到主进程监听事件的想法。