メインコンテンツへ飛ぶ

globalShortcut

アプリケーションにキーボードフォーカスがないときにキーボードイベントを検出します。

プロセス: メイン

globalShortcut モジュールは、オペレーティングシステムに対してグローバルショートカットを登録/登録解除することができます。そのため、様々なショートカットに対する操作をカスタマイズすることができます。

[!NOTE] ショートカットはグローバルです。そのため、アプリにキーボードフォーカスがない場合でも機能します。 app モジュールの ready イベントが発生するまでは、このモジュールは使用できません。 また、Chromium の GlobalShortcutsPortal 実装の使用も可能であることに注意してください。これにより、Wayland セッション内で実行するときにアプリがグローバルのショートカットをバインドできるようになります。

const { app, globalShortcut } = require('electron')

// Portal の globalShortcuts の使用を有効化します。 これは、
// アプリが Wayland セッションで実行される場合に不可欠です。
app.commandLine.appendSwitch('enable-features', 'GlobalShortcutsPortal')

app.whenReady().then(() => {
// 'CommandOrControl+X' ショートカットのリスナーを登録します。
const ret = globalShortcut.register('CommandOrControl+X', () => {
console.log('CommandOrControl+X is pressed')
})

if (!ret) {
console.log('registration failed')
}

// ショートカットが登録されているかどうかをチェックします。
console.log(globalShortcut.isRegistered('CommandOrControl+X'))
})

app.on('will-quit', () => {
// ショートカットを登録解除します。
globalShortcut.unregister('CommandOrControl+X')

// すべてのショートカットを登録解除します。
globalShortcut.unregisterAll()
})

[!TIP] こちらもご参照ください: キーボードショートカットに関する詳細ガイド

メソッド

globalShortcut モジュールには以下のメソッドがあります。

globalShortcut.register(accelerator, callback)

History
Version(s)Changes
None
API ADDED

戻り値 boolean - ショートカットが正常に登録されたかどうか.

accelerator のグローバルショートカットを登録します。 callback は登録したショートカットがユーザに押下されたときに呼び出されます。

アクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは何も通知することなく失敗します。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。

以下のアクセラレータは、アプリが 信頼できるアクセシビリティクライアント として認識されていない限り macOS 10.14 Mojave に正常に登録されません。

  • "Media Play/Pause"
  • "Media Next Track"
  • "Media Previous Track"
  • "Media Stop"

globalShortcut.registerAll(accelerators, callback)

History
Version(s)Changes
None
API ADDED

accelerators 内の全ての accelerator のグローバルショートカットを登録します。 callback は登録したいずれかのショートカットがユーザに押下されたときに呼び出されます。

与えられたアクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは何も通知することなく失敗します。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。

以下のアクセラレータは、アプリが 信頼できるアクセシビリティクライアント として認識されていない限り macOS 10.14 Mojave に正常に登録されません。

  • "Media Play/Pause"
  • "Media Next Track"
  • "Media Previous Track"
  • "Media Stop"

globalShortcut.isRegistered(accelerator)

History
Version(s)Changes
None
API ADDED

戻り値 boolean - このアプリケーションが accelerator を登録したかどうか。

アクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは false を返すはずです。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。

globalShortcut.unregister(accelerator)

History
Version(s)Changes
None
API ADDED

accelerator のグローバルショートカットを登録解除します。

globalShortcut.unregisterAll()

History
Version(s)Changes
None
API ADDED

すべてのグローバルショートカットを登録解除します。

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.