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 |
acceleratorstring - アクセラレータ のショートカット。callbackFunction
戻り値 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 |
acceleratorsstring[] - アクセラレータ のショートカットの配列。callbackFunction
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 |
acceleratorstring - アクセラレータ のショートカット。
戻り値 boolean - このアプリケーションが accelerator を登録したかどうか。
アクセラレータが他のアプリケーションによってすでに使用されている場合、この呼び出しは false を返すはずです。 この動作は、アプリケーションにグローバルショートカットの取り合いをさせたくないため、オペレーティングシステムによって意図されたものです。
globalShortcut.unregister(accelerator)
History
| Version(s) | Changes |
|---|---|
None | API ADDED |
acceleratorstring - アクセラレータ のショートカット。
accelerator のグローバルショートカットを登録解除します。
globalShortcut.unregisterAll()
History
| Version(s) | Changes |
|---|---|
None | API ADDED |
すべてのグローバルショートカットを登録解除します。
globalShortcut.setSuspended(suspended)
History
| Version(s) | Changes |
|---|---|
None | API ADDED |
suspendedboolean - 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.