Saltar al contenido principal

acceso rápido global

Detecta los eventos del teclado cuando la aplicación no tiene el enfoque en el teclado.

Proceso: principal

El módulo globalShortcut puede registrar o quitar un atajo del teclado global con el sistema operativo para que se puedan personalizar las operaciones para varios atajos.

[!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's GlobalShortcutsPortal 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('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()
})

[!TIP] See also: A detailed guide on Keyboard Shortcuts.

Métodos

El módulo globalShortcut tiene los siguientes métodos:

globalShortcut.register(accelerator, callback)

History
Version(s)Changes
None
API ADDED
  • accelerator string - An accelerator shortcut.
  • callback Function

Devuelve boolean - Si el acceso fue registrado con éxito.

Registra un atajo global del acelerador. El callback es llamado cuando el atajo registrado es presionado por el usuario.

Cuando el acelerador ha sido tomado por otras aplicaciones, esta llamada fallará silenciosamente. Este comportamiento está diseñado por los sistemas operativos, debido a que no desean que las aplicaciones tengan conflictos por los atajos globales.

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)

History
Version(s)Changes
None
API ADDED
  • accelerators string[] - An array of accelerator shortcuts.
  • callback Function

Registra un atajo global de todos los elementos acelerador en aceleradores. callback es llamado cuando el usuario presiona alguno de los atajos registrados.

Cuando el acelerador ya ha sido tomado por otras aplicaciones, esta llamada fallará silenciosamente. Este comportamiento está diseñado por los sistemas operativos, debido a que no desean que las aplicaciones tengan conflictos por los atajos globales.

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)

History
Version(s)Changes
None
API ADDED

Devuelve boolean - Si esta aplicación tiene registrado accelerator.

Cuando el acelerador ha sido tomado por otras aplicaciones, esta llamada aun devolverá false. Este comportamiento está diseñado por los sistemas operativos, debido a que no desean que las aplicaciones tengan conflictos por los atajos globales.

globalShortcut.unregister(accelerator)

History
Version(s)Changes
None
API ADDED

Anula el registro del atajo del accelerator.

globalShortcut.unregisterAll()

History
Version(s)Changes
None
API ADDED

Anula el registro todos los atajos globales.

globalShortcut.setSuspended(suspended)

History
Version(s)Changes
None
API ADDED
  • suspended boolean - Whether global shortcut handling should be suspended.

Suspends or resumes global shortcut handling. When suspended, all registered global shortcuts will stop listening for key presses. When resumed, all previously registered shortcuts will begin listening again. New shortcut registrations will fail while handling is suspended.

This can be useful when you want to temporarily allow the user to press key combinations without your application intercepting them, for example while displaying a UI to rebind shortcuts.

globalShortcut.isSuspended()

History
Version(s)Changes
None
API ADDED

Returns boolean - Whether global shortcut handling is currently suspended.