本文へ移動

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)

戻り値 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)

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

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

globalShortcut.unregister(accelerator)

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

globalShortcut.unregisterAll()

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