electron 如何注册全局快捷键,并执行某个事件
发布于 作者:苏南大叔 来源:程序如此灵动~ 我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...
本文中,苏南大叔讲述的是一个非常简单的electron
功能,就是快捷键注册。虽然在传统的网页之中,很少有注册快捷键的说法,而electron
作为客户端软件的一个技术方案,注册快捷键的需求还是存在的。在electron
的体系中,快捷键主要分为三类,菜单快捷键/全局快捷键/窗口快捷键。而本文中,讲述的就是:最简单最常见的全局快捷键。
全局快捷键是在主进程中注册的,使用的模块名称是:globalShortcut
。本文的测试环境是:electron3.0.5
。相关链接是:http://electron.org.cn/doc/api/global-shortcut.html 。
全局快捷键注册
下面的例子,是用在主进程main.js
中一个精简例子,就一个关键函数globalShortcut.register
:
const { globalShortcut } = require('electron')
globalShortcut.register('CmdOrCtrl+Shift+A', function(){
//...
});
豪华版范例:
下面的例子,有些过于豪华。不过从逻辑严谨性上来说,这样写,无可厚非。主进程:
const {app, globalShortcut} = require('electron')
app.on('ready', () => {
// 注册一个 '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()
})
注意:需要在适当的时机will-quit
,使用globalShortcut.unregisterAll()
,注销掉所有已经注册好的快捷键信息。
函数说明
globalShortcut.register()
,注册一个快捷键。globalShortcut.isRegistered()
,检测是否注册成功... ,一般来说,都会成功的。globalShortcut.unregister()
,注销某个快捷键。globalShortcut.unregisterAll()
,注销所有的全局快捷键注册。
CommandOrControl
和CmdOrCtrl
这个不解释,大家都一眼可以看出来是什么意思。当键组合使用的时候,mac
下的command
建,在win
系统下面一般都是ctrl
键,这个属于约定俗成的习惯问题。
总结
一般来说,只要是别注册太常规的快捷键,都不会冲突的,也都会注册成功的。注册好快捷键之后,就可以调用特殊的命令了。
更多electron
相关内容,请关注苏南大叔的博客文章:
如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。
支持一波