系统托盘 Tray

文章目录

  • 系统托盘 Tray
    • 1. 主进程
    • 2. 实现效果

1. 主进程

代码如下(示例):

const{ app, BrowserWindow,Tray, Menu } require'electron'
let mainWindow
let appTray = null; // 在外面创建 tray ,防止被自动删除,导致图标消失
function createWindow () {/*** Initial window options*/mainWindow = new BrowserWindow({height: 620,width: 400,useContentSize: true,// frame: false,//添加后自定义标题//自定义边框// movable: true,//可否移动webPreferences:{nodeIntegration:true,contextIsolation: false,webSecurity: false,},   });   mainWindow.loadFile('./index.html')// 系统托盘//系统托盘右键菜单var trayMenuTemplate = [{label: "显示主窗口",        click: function() {mainWindow.show();         } //打开相应页面},{//打开相应页面label: "检查更新",click: function() {} },{   //打开相应页面label: "web代理",click: function() {} },{label: "查看日志",click: function() {} },{label: "增强加密",click: function() {//右下角弹出消息弹框 }       },{label: "退出客户端",click: function() {app.quit();}},{label: "查看版本信息",click: function() {//打开相应页面} }];//系统托盘图标目录let iconPath = path.join(__dirname, "../assets/logo3.png");let appTray = new Tray(iconPath);console.log(iconPath);//图标的上下文菜单const contextMenu = Menu.buildFromTemplate(trayMenuTemplate);//设置此托盘图标的悬停提示内容appTray.setToolTip("XXXX");//设置此图标的上下文菜单appTray.setContextMenu(contextMenu);//系统托盘图标闪烁let count = 0,timer = null;timer = setInterval(function() {count++;if (count % 2 == 0) {appTray.setImage(iconPath);} else {appTray.setImage(iconPath);}}, 600);//单点击 1.主窗口显示隐藏切换 2.清除闪烁// 单击显示主窗口,再单击隐藏主窗口appTray.on("click", function() {if (!!timer) {appTray.setImage(iconPath);//主窗口显示隐藏切换mainWindow.isVisible() ? mainWindow.hide() : mainWindow.show();// 关闭托盘显示// appTray.destroy();}});
}app.on('ready', createWindow)app.on('window-all-closed', () => {if (process.platform !== 'darwin') {app.quit()}
})

2. 实现效果

Electron系统托盘相关推荐

  1. electron系统托盘与右键菜单

    在main.js里面 ①导入Tray const { app, BrowserWindow, Menu, MenuItem, Tray } = require('electron') ②封装系统托盘函 ...

  2. 【electron】electron-builder-start 实现系统托盘(tray)

    练习代码git:https://github.com/SmileEricXin/electronPractice.git //src\main\index.js 做以下修改// 新增调用 import ...

  3. Electron 解决打包后系统托盘报错问题

    今天在打包electron时碰到系统托盘无法显示问题. 但在使用electron .命令测试时是没有问题的,考虑可能是图片路径问题于是把图片路径改为绝对路径,问题解决. // 创建系统托盘 funct ...

  4. windows系统托盘tray

    electron tray是一种方法. Add icons and context menus to the system's notification area. python调用win32api也 ...

  5. 在 Ubuntu Natty 中解除系统托盘限制

    在 Ubuntu 11.04 Natty 中,Ubuntu 对顶部面板右上角的通知区域(系统托盘)采用了白名单制度,只有支持 Indicators 并位于白名单的部分程序才会被显示在系统托盘中,目前支 ...

  6. MFC最小化到系统托盘

    在VC++中,想实现将MFC最小化到系统托盘,需要调用NOTIFYICONDATA类,并注册相应的消息,以下详细讲解如何实现: 第一步,声明一个NOTIFYICONDATA类,也就是NOTIFYICO ...

  7. MFC系统托盘的实现

    通常电脑里边的软件,当你打开后会在电脑最右下角的任务栏上生成一个系统托盘,当你点击最小化或者点击关闭按钮后,若想恢复窗口,可以左键双击或者单机这个系统图标,同时鼠标右键点击,又会有其他的菜单弹出,比如 ...

  8. TrayIcon 类 添加系统托盘不显示托盘图标

    为什么80%的码农都做不了架构师?>>>    好久不碰 java swing最近写了一个swing 程序 添加托盘时,怎么也不显示图标,就一空白 ,在网上搜了老半天,大部无效. 边 ...

  9. 将 VMware 最小化到系统托盘

    1, 下载 Trayconizer 官网地址: http://www.whitsoftdev.com/trayconizer/ 下载地址: http://www.whitsoftdev.com/fil ...

最新文章

  1. Spring3.2.8+Mybatis3.2.6 多数据源基于BaseDAO的配置
  2. “去哪儿网”2015春招前端面试题
  3. 详细介绍springData
  4. htmljavascript 事件触发机制
  5. nginx / 安装、部署和启动
  6. linux mysql降权_怎样将mysql数据库root降权
  7. python动态图片转字符画_Python实现图片转字符画
  8. 《Look at Boundary: A Boundary-Aware Face Alignment Algorithm》代码调试
  9. 如何在5分钟内发现 SQL 语言中的数据血缘
  10. 目前人工智能应用领域比较多,主要包含哪些应用领域?
  11. 引用第三方SDK产生依赖冲突
  12. rails使用html form,在erb文件中使用rails form_tag和html表单代码有什么区别?
  13. 国密SM9算法C++实现之一:算法简介
  14. 基于NT98530的多目VR摄像机方案,多sensor同步,多sensor防抖,PTP校时,实景SLAM数字孪生的最佳搭档。
  15. html制作电影宣传效果,宣传片制作有什么技巧可提高效果
  16. 数学连乘和累加运算符号_3,7,5之间加数学运算符号使结果等于8?
  17. PS制作立体效果——圆环
  18. remap中的xmap,ymap详解
  19. 论文阅读(3):Image-Based 3D Object Reconstruction:State-of-the-Art and Trends in the Deep Learning Era
  20. MySQL系列---架构与SQL执行流程详解

热门文章

  1. 爬取京东上商品的所有详细信息
  2. APP推广上乘干货:捕鱼达人创始人陈昊芝分享
  3. C语言关键字restrict
  4. POI及EasyExcel-读写示例
  5. 必应发狂了! LeCun马库斯齐喷ChatGPT:大语言模型果然是邪路?
  6. tensorflow中slim详解
  7. TCP,UDP的报头详解
  8. android U盘 io异常,win10系统打开u盘提示由于io设备错误的解决方法
  9. 听歌识曲--用python实现一个音乐检索器的功能
  10. 适合端午节送礼的粽子礼盒 糙米大匠拯救选择困难症 必看