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)
accelerator
アクセラレータcallback
関数
戻り値 boolean
- ショートカットが正常に登録されたかどうか。
accelerator
のグローバルショートカットを登録します。登録されたショートカットがユーザーによって押されると、callback
が呼び出されます。
アクセラレータが既に他のアプリケーションによって使用されている場合、この呼び出しは暗黙的に失敗します。この動作は、オペレーティングシステムによって意図されたものであり、グローバルショートカットをめぐってアプリケーションが競合することを防ぐためです。
macOS 10.14 Mojaveでは、アプリが信頼できるアクセシビリティクライアントとして承認されていない限り、以下のアクセラレータは正常に登録されません。
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.registerAll(accelerators, callback)
accelerators
内のすべてのaccelerator
項目のグローバルショートカットを登録します。登録されたショートカットのいずれかがユーザーによって押されると、callback
が呼び出されます。
特定のアクセラレータが既に他のアプリケーションによって使用されている場合、この呼び出しは暗黙的に失敗します。この動作は、オペレーティングシステムによって意図されたものであり、グローバルショートカットをめぐってアプリケーションが競合することを防ぐためです。
macOS 10.14 Mojaveでは、アプリが信頼できるアクセシビリティクライアントとして承認されていない限り、以下のアクセラレータは正常に登録されません。
- "Media Play/Pause"
- "Media Next Track"
- "Media Previous Track"
- "Media Stop"
globalShortcut.isRegistered(accelerator)
accelerator
アクセラレータ
戻り値 boolean
- このアプリケーションがaccelerator
を登録しているかどうか。
アクセラレータが既に他のアプリケーションによって使用されている場合でも、この呼び出しはfalse
を返します。この動作は、オペレーティングシステムによって意図されたものであり、グローバルショートカットをめぐってアプリケーションが競合することを防ぐためです。
globalShortcut.unregister(accelerator)
accelerator
アクセラレータ
accelerator
のグローバルショートカットを登録解除します。
globalShortcut.unregisterAll()
すべてのグローバルショートカットを登録解除します。