electron globalShortcut 快捷键与系统全局快捷键冲突

news/2025/1/12 4:02:45/

electron 开发自己的接口测试工具(Post Tools),在设置了 globalShortcut 快捷键后,发现应用中的快捷键与系统全局快捷键冲突了,导致系统快捷键不可正常使用。

electron globalShortcut

快捷键配置

export function initGlobalShortcut(mainWindow) {globalShortcut.register('CommandOrControl+shift+r', () => {app.relaunch()app.exit()})globalShortcut.register('CommandOrControl+shift+delete', () => {resetLocalData()})globalShortcut.register('F1', () => {shell.openExternal('https://tiven.cn/p/4dc21784/')})globalShortcut.register('F2', () => {shell.openExternal('https://tiven.cn/service/tools/post-tool')})globalShortcut.register('F5', () => {mainWindow?.reload()})globalShortcut.register('CommandOrControl+r', () => {mainWindow?.reload()})globalShortcut.register('CommandOrControl+q', () => {app.exit()})globalShortcut.register('CommandOrControl+w', () => {mainWindow?.hide()mainWindow?.setSkipTaskbar(true)})globalShortcut.register('F11', () => {// 是否全屏if (mainWindow?.isFullScreen()) {// mainWindow?.minimize();mainWindow?.setFullScreen(false)mainWindow?.setMenuBarVisibility(true)} else {mainWindow?.setFullScreen(true)mainWindow?.setMenuBarVisibility(false)}})globalShortcut.register('Esc', () => {// 是否全屏if (mainWindow?.isFullScreen()) {// mainWindow?.minimize();mainWindow?.setFullScreen(false)mainWindow?.setMenuBarVisibility(true)}})globalShortcut.register('CommandOrControl+F12', () => {mainWindow?.webContents.openDevTools({ mode: 'detach' })})
}

解决冲突

一般来说会在 mainWindow ready-to-show 的时候初始化快捷键,当然也可以在应用失去焦点(blur)的时候主动应用的注销快捷键,以避免和系统快捷键冲突。

mainWindow.on('ready-to-show', () => {mainWindow.show()// 注册全局快捷键initGlobalShortcut(mainWindow)})mainWindow.on('blur', () => {// 失去焦点,注销快捷键globalShortcut.unregisterAll()})

欢迎访问:天问博客


http://www.ppmy.cn/news/904533.html

相关文章

map和set的模拟实现|利用红黑树封装map和set|STL源码剖析

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量干货博客汇总https://blog.csdn.net/yu_cblog/c…

【FPGA】基于C5的第一个SoC工程

文章目录 前言SoC的Linux系统搭建 前言 本文是在毕业实习期间学习FPGA的SoC开发板运行全连接神经网络实例手写体的总结。 声明:本文仅作记录和操作指南,涉及到的操作会尽量细致,但是由于文件过大不会分享文件,具体软件可以自行搜…

喜讯 | 国际智慧城市大会巨杉喜获两项大奖

近日,第六届中国(广东)国际智慧城市大会智慧园区和社区高峰论坛暨2018-2019年度智慧城市建设评优活动颁奖盛典在广州圆满举行。SequoiaDB巨杉数据库荣获“2018-2019年度智慧城市大数据十佳技术创新奖”及“2018-2019年度大数据新锐人物奖”两项奖项。 本次论坛由广东…

香港内推 | 上海千象资产招聘海外CTA量化研究实习生

合适的工作难找?最新的招聘信息也不知道? AI 求职为大家精选人工智能领域最新鲜的招聘信息,助你先人一步投递,快人一步入职! 上海千象资产 We are Shanghai Qianxiang Asset Management Co., Ltd., a leading China qu…

新锐办公简介

新锐在线办公系统是一个先进的企业信息平台建立及维护软件。它的设计宗旨是功能强大、操作简便、界面友好,软件运行基于Browser/Server模式,符合当今技术发展的趋势;界面如同Windows的资源管理器,用户只要具备支持JavaScript和HTM…

诚聘技术英才

高级芯片设计工程师 岗位描述: 1.与设计团队一起参与AI并行处理器系统的设计及开发; 2. 根据高标准功耗、面积、性能要求下的架构定义和设计规范进行模块的RTL设计; 3.紧密与架构、验证、后端、软件等多个团队协同工作已解决设计问题。…

新锐技术探索

项目管理: Maven 代码管理: Git 数据服务: Vert.x SpringBoot Node.js 苹果开发: Swift 安卓开发: Kotlin 微服务: SpringCloud DubboZookeeper 容器: Docker 桌面开发: Java…

万豪国际集团任命新CEO和总裁;智联招聘获春华资本等战略投资 | 美通企业日报...

今日看点:万豪国际公布集团高管最新任命。春华资本联合管理层战略投资智联招聘。LINE FRIENDS与腾讯微视达成战略合作。药明奥测完成1.5亿美元B轮融资,依生生物完成1.3亿美元B轮融资。Hopium氢动能车将于2021年6月亮相。阿科玛宣布进一步提升其中国常熟基…