main.js

const { app, BrowserWindow, Menu } = require('electron')
const path = require('path')//引入主菜单和右键单击菜单
const contextMenu = Menu.buildFromTemplate(require('./menu/contextMenu'))
const mainMenu = Menu.buildFromTemplate(require('./menu/mainMenu'))  //引入托盘
const createTray = require('./controller/tray')const  createWindow = async ()=>{const win = new BrowserWindow({width:800,height:600,webPreferences:{preload: path.resolve(__dirname,'./preload-js')}})win.loadFile('./renderer/index.html')//挂载右键单击菜单win.webContents.on('context-menu',()=>{contextMenu.popup()})//挂载托盘createTray(app,win)
}app.whenReady().then(()=>{createWindow()app.on('activate',()=>{if(BrowserWindow.getAllWindows().length === 0){createWindow()}})})
Menu.setApplicationMenu(mainMenu)//适配mac 退出再次打开
app.on('window-all-closed',()=>{if(process.platform !== 'darwin'){app.quit()}
})

tray.js

// 设置托盘 (小图标)
const { Tray,  Menu } = require('electron')
const path = require('path')const createTray = (app, win) => {let trayMenu = Menu.buildFromTemplate([{ label: 'item 1' },{ label: 'show/hide', click: () => {win.isVisible() ? win.hide() : win.show()    //设置显示隐藏}},{ role: 'quit' }    //退出])// 这里的路径需要使用绝对路径。const tray = new Tray(path.resolve(__dirname, '../assets/icon.png'))tray.setToolTip('我的聊天工具')tray.on('click', (e) => {// if (e.shiftKey) {//   app.quit()// } else {//   win.isVisible() ? win.hide() : win.show()// }})tray.setContextMenu(trayMenu)
}module.exports = createTray

这里需要根据电脑进行适配

主菜单的实现
mainMenu.js contextMenu.js 两个文件内容是一样的,可以根据需求实现

module.exports = [{label:"electron",submenu:[{label:'item 1',submenu:[{label:"sub item2"}]}]},{//系统方法规则实现label: 'Edit',submenu:[{role:'undo'},{role:'redo'},{role:'copy'},{role:'paste'}]},{label:'操作',submenu:[{label:"切换开发者模式",role:'toggleDevTools'},{label:'切换全屏',role:'toggleFullScreen'},{ // 定义自己的带操作的菜单label:"Greet",click: () => {console.log("welcome to Electrom")},accelerator: 'Shift+Alt+G'   //组合键}]}
]

electron Tary托盘、主菜单、右键单击菜单出现相关推荐

  1. Excel(VBA)自定义右键单击菜单以启动宏(示例代码)

    主要介绍 Excel(VBA)自定义右键单击菜单以启动宏(示例代码)以及相关的经验技巧 THISWORKBOOK (paste into ThisWorkbook, macros that open ...

  2. qt 菜单/右键快捷菜单 选项不可操作/背景/分隔线颜色样式表

    经过网上启示并测试,右键快捷菜单和菜单其实都是用QMenu这个样式. 以下的颜色纯粹是随意填的颜色,使用时根据自己需求填写, 颜色rgb中取值为0-255,如果使用#+颜色,取值为0x-0xFF QM ...

  3. 使用Bootstrap制作右键单击自定义菜单

    我们可以轻松地通过右键单击创建一个漂亮的自定义菜单. 让我们创建一个div右键单击启用自定义菜单. <div class="col-lg-6 bg-info" id=&quo ...

  4. win11右键开始菜单什么都不显示

    问题场景: 如图所示,右键单击菜单没有选项弹出,显示空白. 问题描述 我的原因: 最开始安装Windows11的时候,使用了删除注册表HKEY_CLASSES_ROOT\lnkfile中的IsShor ...

  5. js实现右键单击打开自定义的菜单

    今天分享一个,单击鼠标右键弹出自定义菜单,选中不同菜单选项,实现其对应功能    首先先自已定义一个菜单 <div id="menu"><ul><li ...

  6. 【电脑Windows日常】如何在 Windows 11 中自定义右键单击上下文菜单、自定义或者删除右键菜单的选项,包括桌面、文件夹和文件——详细教程(5个方法)

    前言 虽然许多人喜欢Windows 11 的简化右键单击上下文菜单,但有些人对截断的菜单不太满意.让我们看看一些根据您的喜好对其进行自定义的方法. 而且,很多默认的应用会使得右键菜单非常臃肿,需要进一 ...

  7. electron 菜单栏_如何在Electron JS中添加任务栏图标菜单?

    electron 菜单栏 If you are new here, please consider checking out my recent articles on Electron JS inc ...

  8. 创建 桌面、发送到...、快速启动栏、开始菜单、程序菜单、右键菜单 快捷方式...

    {=================================================================     功    能:             创建 桌面.发送到 ...

  9. 鼠标右键新建菜单删除或添加项目

    因为使用的需要,我们常会在鼠标右键新建菜单中添加项目,或因某种程序删除后鼠标右键新建菜单中残留的项目需要删除,可以用下列方法达到目标. 1.在"开始"中的"运行" ...

最新文章

  1. java+pom.xml+是什么_java – 父pom.xml的包装无效,必须是“pom”,而是“ear”
  2. Linux下Tomcat与Apache Web服务器的整合
  3. boost::core::is_same用法测试实例
  4. 30多年程序员生涯经验总结(成功源自于失败中的学习;失败则是因为容忍错误的横行)...
  5. 疯狂游戏型计算机配置清单,电脑配置清单
  6. (笔试题)和0交换的排序
  7. 【网络流专练一】UVA五题(UVA12125,UVA11082,UVA10983,UVA1306,UVA10735)
  8. js代码优化(不定时更新)
  9. ln命令:软链接建立与删除
  10. 计算机在档案部门应用范围,计算机在档案管理中的相关运用
  11. 如果你热爱编码,就应该少写代码
  12. 什么是promise?
  13. 免费的 XShell 替代品,我推荐这5款软件,一个比一个香!
  14. 剽悍一只猫《一年顶十年》读书笔记
  15. c语言做相册影集,制作DIY相册影集教程-如何制作影集
  16. 逻辑回归 自由度_回归自由度的官方定义
  17. python程序设计 从基础入门到实战应用电子书_Python程序设计——从基础入门到实战应用...
  18. Linux资源控制-使用cgroup控制CPU和内存
  19. 什么是物联网NB-IoT技术?
  20. 解决Macbook在win7系统下不能识别USB设备,完全没反应

热门文章

  1. C语言实验——保留整数
  2. SDL游戏开发之三-瓦片地图
  3. vue怎么在标签判断_vue 指令和标签
  4. 天天生鲜Django项目③
  5. Elasticsearch:Elasticsearch 中的 refresh 和 flush 操作指南
  6. 学校电脑计算机排序摆放,录取:电脑排序两分钟搞定
  7. 今日话题:苹果已向华为缴纳数亿美元专利费?
  8. 唤起心中的巨人(节选)——安东尼.罗宾斯
  9. 数字信息化时代,VR会议开启商务云洽谈新方式
  10. 钻木取火完全攻略——不再是纸上谈兵…