2016-01-07 21:26:08 +08:00
|
|
|
# globalShortcut
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2016-04-21 15:39:12 -07:00
|
|
|
> Detect keyboard events when the application does not have keyboard focus.
|
2016-04-21 15:35:29 -07:00
|
|
|
|
2016-01-07 21:26:08 +08:00
|
|
|
The `globalShortcut` module can register/unregister a global keyboard shortcut
|
2015-08-26 17:32:47 -07:00
|
|
|
with the operating system so that you can customize the operations for various
|
|
|
|
shortcuts.
|
|
|
|
|
2015-09-09 14:09:14 -07:00
|
|
|
**Note:** The shortcut is global; it will work even if the app does
|
2015-08-26 17:32:47 -07:00
|
|
|
not have the keyboard focus. You should not use this module until the `ready`
|
|
|
|
event of the app module is emitted.
|
2014-08-04 09:47:42 +08:00
|
|
|
|
|
|
|
```javascript
|
2016-05-11 01:26:38 +09:00
|
|
|
const {app, globalShortcut} = require('electron');
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2016-05-04 11:59:02 -06:00
|
|
|
app.on('ready', () => {
|
2016-04-01 14:54:25 -07:00
|
|
|
// Register a 'CommandOrControl+X' shortcut listener.
|
2016-05-11 02:15:09 +09:00
|
|
|
const ret = globalShortcut.register('CommandOrControl+X', () => {
|
2016-04-01 14:54:25 -07:00
|
|
|
console.log('CommandOrControl+X is pressed');
|
2015-10-07 09:03:11 -07:00
|
|
|
});
|
2015-06-09 18:01:09 +02:00
|
|
|
|
2015-07-09 22:49:16 +08:00
|
|
|
if (!ret) {
|
|
|
|
console.log('registration failed');
|
|
|
|
}
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-07-09 22:49:16 +08:00
|
|
|
// Check whether a shortcut is registered.
|
2016-04-01 14:54:25 -07:00
|
|
|
console.log(globalShortcut.isRegistered('CommandOrControl+X'));
|
2015-07-09 17:03:58 +08:00
|
|
|
});
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2016-05-04 11:59:02 -06:00
|
|
|
app.on('will-quit', () => {
|
2015-07-09 22:49:16 +08:00
|
|
|
// Unregister a shortcut.
|
2016-04-01 14:54:25 -07:00
|
|
|
globalShortcut.unregister('CommandOrControl+X');
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-07-09 22:49:16 +08:00
|
|
|
// Unregister all shortcuts.
|
|
|
|
globalShortcut.unregisterAll();
|
2015-07-09 17:03:58 +08:00
|
|
|
});
|
2014-08-04 09:47:42 +08:00
|
|
|
```
|
|
|
|
|
2015-08-26 17:32:47 -07:00
|
|
|
## Methods
|
|
|
|
|
2016-01-07 21:26:08 +08:00
|
|
|
The `globalShortcut` module has the following methods:
|
2015-08-26 17:32:47 -07:00
|
|
|
|
|
|
|
### `globalShortcut.register(accelerator, callback)`
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2014-08-05 00:00:39 +08:00
|
|
|
* `accelerator` [Accelerator](accelerator.md)
|
2014-08-04 09:47:42 +08:00
|
|
|
* `callback` Function
|
|
|
|
|
2015-07-14 16:58:15 +01:00
|
|
|
Registers a global shortcut of `accelerator`. The `callback` is called when
|
2016-01-07 21:26:08 +08:00
|
|
|
the registered shortcut is pressed by the user.
|
|
|
|
|
|
|
|
When the accelerator is already taken by other applications, this call will
|
|
|
|
silently fail. This behavior is intended by operating systems, since they don't
|
|
|
|
want applications to fight for global shortcuts.
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-08-26 17:32:47 -07:00
|
|
|
### `globalShortcut.isRegistered(accelerator)`
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2014-08-05 00:00:39 +08:00
|
|
|
* `accelerator` [Accelerator](accelerator.md)
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2016-01-07 21:26:08 +08:00
|
|
|
Returns whether this application has registered `accelerator`.
|
|
|
|
|
|
|
|
When the accelerator is already taken by other applications, this call will
|
|
|
|
still return `false`. This behavior is intended by operating systems, since they
|
|
|
|
don't want applications to fight for global shortcuts.
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-08-26 17:32:47 -07:00
|
|
|
### `globalShortcut.unregister(accelerator)`
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2014-08-05 00:00:39 +08:00
|
|
|
* `accelerator` [Accelerator](accelerator.md)
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-08-26 17:32:47 -07:00
|
|
|
Unregisters the global shortcut of `accelerator`.
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-08-26 17:32:47 -07:00
|
|
|
### `globalShortcut.unregisterAll()`
|
2014-08-04 09:47:42 +08:00
|
|
|
|
2015-10-07 09:03:46 -07:00
|
|
|
Unregisters all of the global shortcuts.
|