globalShortcut
Отслеживает действия на клавиатуре, когда она не сфокусирована на приложении.
Process: Main
Модуль globalShortcut
может регистрировать/отменять регистрацию глобальных сочетаний клавиш, так что вы можете настраивать задачи для различных сочетаний клавиш.
[!NOTE] The shortcut is global; it will work even if the app does not have the keyboard focus. This module cannot be used before the
ready
event of the app module is emitted. Please also note that it is also possible to use Chromium'sGlobalShortcutsPortal
implementation, which allows apps to bind global shortcuts when running within a Wayland session.
const { app, globalShortcut } = require('electron')
// Enable usage of Portal's globalShortcuts. This is essential for cases when
// the app runs in a Wayland session.
app.commandLine.appendSwitch('enable-features', 'GlobalShortcutsPortal')
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('ошибка регистрации')
}
// Проверяем, было ли сочетание зарегистрировано.
console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})
app.on('will-quit', () => {
// Отменяем регистрацию сочетания клавиш.
globalShortcut.unregister('CommandOrControl+X')
// Отменяем регистрацию всех сочетаний.
globalShortcut.unregisterAll()
})
[!TIP] See also: A detailed guide on Keyboard Shortcuts.
Методы
Модуль globalShortcut
имеет следующие методы:
globalShortcut.register(accelerator, callback)
accelerator
string - An accelerator shortcut.callback
Function
Возвращает boolean
- было ли сочетание клавиш успешно зарегистрировано.
Registers a global shortcut of accelerator
. The callback
is called when the registered shortcut is pressed by the user.
Когда accelerator уже занят другими приложениями, этот вызов будет молча завершаться ошибкой. Такое поведение назначается операционными системами, поскольку они не хотят, чтобы приложения боролись за глобальные сочетания клавиш.
The following accelerators will not be registered successfully on macOS 10.14 Mojave unless the app has been authorized as a trusted accessibility client:
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.registerAll(accelerators, callback)
accelerators
string[] - An array of accelerator shortcuts.callback
Function
Registers a global shortcut of all accelerator
items in accelerators
. The callback
is called when any of the registered shortcuts are pressed by the user.
Когда определенный accelerator уже занят другими приложениями, этот вызов будет молча завершаться ошибкой. Такое поведение назначается операционными системами, поскольку они не хотят, чтобы приложения боролись за глобальные сочетания клавиш.
The following accelerators will not be registered successfully on macOS 10.14 Mojave unless the app has been authorized as a trusted accessibility client:
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.isRegistered(accelerator)
accelerator
string - An accelerator shortcut.
Возвращает boolean
- независимо от того, зарегистрировало ли это приложение accelerator
.
Когда ускоритель уже занят другими приложениями, этот вызов будет возвращать false
. Такое поведение назначается операционными системами, поскольку они не хотят, чтобы приложения боролись за глобальные сочетания клавиш.
globalShortcut.unregister(accelerator)
accelerator
string - An accelerator shortcut.
Отмена регистрации сочетания клавиш accelerator
.
globalShortcut.unregisterAll()
Отменяет регистрацию всех глобальных ярлыков.