簡體   English   中英

Atom Electron 捕獲所有鍵盤事件,即使應用程序未聚焦

[英]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 中監聽按鍵事件。那么你可以使用普通的keyupkeydown事件。 但這有點長,因為要將這些事件從渲染器傳遞到主進程,我們必須設置預加載腳本

在這篇文章中,您將了解從渲染到主進程的監聽事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM