[英]Atom Electron capture all keyboard events even when app is unfocused
我想知道是否有一種方法可以使用 Atom Electron 創建一個應用程序,當用戶關注/不關注我的應用程序時,該應用程序運行並獲取我的鍵盤事件。
例如,如果他在 Chrome 上寫了一些東西,我的應用程序將存儲他按下的所有鍵。 我搜索了一下,但沒有找到解決我問題的方法。
與您正在尋找的最接近的是全局快捷方式: https : //github.com/electron/electron/blob/master/docs/api/global-shortcut.md 。 雖然您在核心 Electron 中沒有任何東西來支持開箱即用地捕獲所有鍵盤事件,但幸運的是 node.js 具有非常可擴展的本地節點插件。
對於全局快捷鍵,您可以使用電子鍵盤快捷鍵模塊
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的文檔,即使我們的 window 不在焦點 state 中,也會在任何地方應用鍵盤快捷方式。但是如果你只想在你的應用程序 window 中監聽按鍵事件。那么你可以使用普通的keyup
, keydown
事件。 但這有點長,因為要將這些事件從渲染器傳遞到主進程,我們必須設置預加載腳本。
在這篇文章中,您將了解從渲染到主進程的監聽事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.