跳到主要内容

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)

返回 boolean - 指示快捷键是否注册成功。

注册 accelerator 的全局快捷键。当用户按下注册的快捷键时,将调用 callback

当快捷键已被其他应用程序占用时,此调用将静默失败。此行为是操作系统预期的,因为它们不希望应用程序争夺全局快捷键。

除非应用程序已被授权为受信任的辅助功能客户端,否则以下快捷键在 macOS 10.14 Mojave 上将无法成功注册

  • "媒体播放/暂停"
  • "媒体下一曲"
  • "媒体上一曲"
  • "媒体停止"

globalShortcut.registerAll(accelerators, callback)

注册 accelerators 中所有 accelerator 项的全局快捷键。当用户按下任何注册的快捷键时,将调用 callback

当给定的快捷键已被其他应用程序占用时,此调用将静默失败。此行为是操作系统预期的,因为它们不希望应用程序争夺全局快捷键。

除非应用程序已被授权为受信任的辅助功能客户端,否则以下快捷键在 macOS 10.14 Mojave 上将无法成功注册

  • "媒体播放/暂停"
  • "媒体下一曲"
  • "媒体上一曲"
  • "媒体停止"

globalShortcut.isRegistered(accelerator)

返回 boolean - 指示此应用程序是否已注册 accelerator

当快捷键已被其他应用程序占用时,此调用仍将返回 false。此行为是操作系统预期的,因为它们不希望应用程序争夺全局快捷键。

globalShortcut.unregister(accelerator)

注销 accelerator 的全局快捷键。

globalShortcut.unregisterAll()

注销所有全局快捷键。