原文:https://github.com/electron/electron/blob/master/docs/api/global-shortcut.md
譯者:Lin
當程序沒有鍵盤焦點時刪除鍵盤事件。
線程:主進程
globalShortcut
模塊可以注冊/注銷一個操作系統的全局快捷鍵,所以你可以為操作自定義各種各樣的快捷鍵。
注意:快捷鍵是全局的;甚至這個應用沒有鍵盤焦點時也會工作。你不能使用這個模塊,直到app
模塊的ready
事件被分發。
const {app, globalShortcut} = require('electron')
app.on('ready', () => {
// 注冊一個'CommandOrControl+X'快捷鍵的監聽。
const ret = globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X被按下')
})
if (!ret) {
console.log('注冊失敗')
}
// 檢查這個快捷鍵是否被注冊。
console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})
app.on('will-quit', () => {
// 注銷一個快捷鍵。
globalShortcut.unregister('CommandOrControl+X')
// 注銷所有快捷鍵。
globalShortcut.unregisterAll()
})
<h2 id="methods">Methods</h2>
globalShortcut
模塊有下面的方法:
<h3 id="globalShortcut-register"><code>globalShortcut.register(accelerator, callback)</code></h3>
-
accelerator
Accelerator類型 -
callback
Function類型
注冊一個accelerator
傳入的全局的快捷鍵。callback
被調用當注冊的快捷鍵被用戶按下的時候。
當accelerator
已經被其他應用占用,這個調用將沒有任何反應的失敗。這個行為是操作系統控制,因為它們(指操作系統)不想讓應用程序因為全局快捷鍵而產生沖突。
<h3 id="globalShortcut-isRegistered"><code>globalShortcut.isRegistered(accelerator)</code></h3>
-
accelerator
Accelerator類型
返回值為Boolean
類型 - 應用是否已經注冊accelerator
。
當accelerator
已經被其他應用程序占用,這個方法將返回false
。這個行為是操作系統控制,因為它們(指操作系統)不想讓應用程序因為全局快捷鍵而產生沖突。
<h3 id="globalShortcut-unregister"><code>globalShortcut.unregister(accelerator)</code></h3>
-
accelerator
Accelerator類型
傳入accelerator
來注銷一個全局快捷鍵。
<h3 id="globalShortcut-unregisterAll"><code>globalShortcut.unregisterAll()</code></h3>
注銷所有全局快捷鍵。