如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接信息。

本文中,苏南大叔讲述的是一个非常简单的electron功能,就是快捷键注册。虽然在传统的网页之中,很少有注册快捷键的说法,而electron作为客户端软件的一个技术方案,注册快捷键的需求还是存在的。在electron的体系中,快捷键主要分为三类,菜单快捷键/全局快捷键/窗口快捷键。而本文中,讲述的就是:最简单最常见的全局快捷键。

electron 如何注册全局快捷键,并执行某个事件 - electron-shortcut
electron 如何注册全局快捷键,并执行某个事件(图1-1)

全局快捷键是在主进程中注册的,使用的模块名称是:globalShortcut。本文的测试环境是:electron3.0.5。相关链接是:https://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()
})

函数说明

  • globalShortcut.register(),注册一个快捷键。
  • globalShortcut.isRegistered(),检测是否注册成功... ,一般来说,都会成功的。
  • globalShortcut.unregister(),注销某个快捷键。
  • globalShortcut.unregisterAll(),注销所有的全局快捷键注册。

CommandOrControlCmdOrCtrl

这个不解释,大家都一眼可以看出来是什么意思。当键组合使用的时候,mac下的command建,在win系统下面一般都是ctrl键。这个属于约定俗成的习惯问题。

总结

一般来说,只要是别注册太常规的快捷键,都不会冲突的,也都会注册成功的。注册好快捷键之后,就可以调用特殊的命令了。你懂的。

更多electron相关内容,请关注苏南大叔的博客文章。

 【源码】代码片段及相关软件点此获取

 【electron】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章:

欢迎转载传播本篇原创文章,转载请保留链接及作者信息。
欢迎指正文字或逻辑错误,将会择优在文末列出您的信息。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

苏南大叔需要你的支持

感谢您的打赏,让我更有动力,将更多精彩教程文章,呈现给大家!谢谢!