globalShortcut
检测应用程序没有键盘焦点时的键盘事件。
进程: 主进程
globalShortcut
模块可以与操作系统注册/注销全局键盘快捷键,以便您可以自定义各种快捷键的操作。
注意:快捷键是全局的;即使应用程序没有键盘焦点,它也能工作。在 app
模块发出 ready
事件之前,不能使用此模块。
const { app, globalShortcut } = require('electron')
app.whenReady().then(() => {
// Register a 'CommandOrControl+X' shortcut listener.
const ret = globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X is pressed')
})
if (!ret) {
console.log('registration failed')
}
// Check whether a shortcut is registered.
console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})
app.on('will-quit', () => {
// Unregister a shortcut.
globalShortcut.unregister('CommandOrControl+X')
// Unregister all shortcuts.
globalShortcut.unregisterAll()
})
方法
globalShortcut
模块具有以下方法
globalShortcut.register(accelerator, callback)
accelerator
加速器callback
函数
返回 boolean
- 快捷方式是否已成功注册。
注册 accelerator
的全局快捷键。当用户按下注册的快捷键时,会调用 callback
。
当加速器已被其他应用程序占用时,此调用将静默失败。此行为是操作系统故意设计的,因为它们不希望应用程序争夺全局快捷键。
除非应用程序已被授权为 受信任的可访问性客户端,否则以下加速器将无法在 macOS 10.14 Mojave 上成功注册。
- "媒体播放/暂停"
- "媒体下一曲目"
- "媒体上一曲目"
- "媒体停止"
globalShortcut.registerAll(accelerators, callback)
注册 accelerators
中所有 accelerator
项的全局快捷键。当用户按下任何注册的快捷键时,会调用 callback
。
当给定的加速器已被其他应用程序占用时,此调用将静默失败。此行为是操作系统故意设计的,因为它们不希望应用程序争夺全局快捷键。
除非应用程序已被授权为 受信任的可访问性客户端,否则以下加速器将无法在 macOS 10.14 Mojave 上成功注册。
- "媒体播放/暂停"
- "媒体下一曲目"
- "媒体上一曲目"
- "媒体停止"
globalShortcut.isRegistered(accelerator)
accelerator
加速器
返回 boolean
- 此应用程序是否已注册 accelerator
。
当加速器已被其他应用程序占用时,此调用仍将返回 false
。此行为是操作系统故意设计的,因为它们不希望应用程序争夺全局快捷键。
globalShortcut.unregister(accelerator)
accelerator
加速器
注销 accelerator
的全局快捷键。
globalShortcut.unregisterAll()
注销所有全局快捷键。