我想知道是否有一种方法,使一个应用程序与原子电子运行,并获得我的键盘事件时,用户是/不是集中在我的应用程序。例如,如果他在Chrome上写了一些东西,我的应用程序会存储他按下的所有键。我搜索了一下,但没有找到解决我问题的东西。
kmpatx3s1#
最接近您所寻找的是全局快捷方式:https://github.com/electron/electron/blob/master/docs/api/global-shortcut.md。虽然在core Electron中没有任何东西来支持捕获所有的键盘事件,但幸运的是,node.js对于native node addons是非常可扩展的。
vjhs03f72#
对于全局快捷键,可以使用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();
bq3bfh9z3#
根据文档,使用globalShortcut会将键盘快捷键应用到任何地方,即使我们的窗口没有处于焦点状态。但是如果你只想在你的应用程序窗口中监听按键事件。那么你可以使用普通的keyup,keydown事件。但是这是一个稍微长一点的方法,因为要将这些事件从渲染传递到主进程,我们必须设置预加载脚本。您将了解如何侦听从render到主进程inside this post的事件。
keyup
keydown
3条答案
按热度按时间kmpatx3s1#
最接近您所寻找的是全局快捷方式:https://github.com/electron/electron/blob/master/docs/api/global-shortcut.md。虽然在core Electron中没有任何东西来支持捕获所有的键盘事件,但幸运的是,node.js对于native node addons是非常可扩展的。
vjhs03f72#
对于全局快捷键,可以使用Electron Keyboard-Shortcuts module
但本模块只支持快捷键。
如果需要任何键监听/挂钩,则应使用另一个模块,如iohook
bq3bfh9z3#
根据文档,使用globalShortcut会将键盘快捷键应用到任何地方,即使我们的窗口没有处于焦点状态。但是如果你只想在你的应用程序窗口中监听按键事件。那么你可以使用普通的
keyup
,keydown
事件。但是这是一个稍微长一点的方法,因为要将这些事件从渲染传递到主进程,我们必须设置预加载脚本。您将了解如何侦听从render到主进程inside this post的事件。