/*** Created by Administrator on 2016/11/23.* 页面对窗口的一些操作封装,用于渲染进程*/
"use strict";const Common = require('../../window/common.js');
const { ipcRenderer, remote } = require('electron');
const WinReg = require('winreg');
const RUN_LOCATION = '\\Software\\Microsoft\\Windows\\CurrentVersion\\Run';
const file = process.execPath;let flashTrayTimer = null;class WindowUtil{// 窗口最小化
    static minWindow() {remote.getCurrentWindow().minimize();}// 窗口最大化
    static maxWindow(isMaxed) {const browserWindow = remote.getCurrentWindow();if(!isMaxed) {browserWindow.unmaximize();} else {browserWindow.maximize();}}// 设置窗口是否能改变大小,参数true/false
    static setResizable(resizable) {remote.getCurrentWindow().setResizable(resizable);}// 下载文件
    static download(url){remote.getCurrentWebContents().downloadURL(url);}// 隐藏窗口
    static hide(){const browserWindow = remote.getCurrentWindow();browserWindow.hide();}// 显示窗口
    static show(){const browserWindow = remote.getCurrentWindow();browserWindow.show();}// 窗口闪烁
    static flashFrame(){const browserWindow = remote.getCurrentWindow();//   if(browserWindow.isFocused() || browserWindow.isVisible())if(!browserWindow.isFocused()) {browserWindow.showInactive();browserWindow.flashFrame(true);}}// 设置窗口最前端显示
    static setAlwaysOnTop(top){const browserWindow = remote.getCurrentWindow();browserWindow.setAlwaysOnTop(top);}// 设置开机启动
    static enableAutoStart(callback) {let key = new WinReg({hive: WinReg.HKCU, key: RUN_LOCATION});key.set('EUC', WinReg.REG_SZ, file, (err)=> {console.log('设置自动启动'+err);callback(err);});}// 取消开机启动
    static disableAutoStart(callback) {let key = new WinReg({hive: WinReg.HKCU, key: RUN_LOCATION});key.remove('EUC',  (err)=>{console.log('取消自动启动'+err);callback(err);});}// 获取是否开机启动
    static getAutoStartValue(callback) {let key = new WinReg({hive: WinReg.HKCU, key: RUN_LOCATION});key.get('EUC', function (error, result) {console.log("查询自动启动:"+JSON.stringify(result));console.log("file:"+file);if (result) {callback(true);}else {callback(false);}});}/*** 托盘图标闪烁* @param flash true:闪烁;false:停止*/static flashTray(flash) {let hasIcon = false;const tayIcon = './imgs/logo.ico';const tayIcon1 = './imgs/empty.png';if (flash) {if (flashTrayTimer) {return;}flashTrayTimer = window.setInterval(() => {ipcRenderer.send('ChangeTrayIcon', hasIcon ? tayIcon : tayIcon1);hasIcon = !hasIcon;}, 500);} else {if(flashTrayTimer) {window.clearInterval(flashTrayTimer);flashTrayTimer = null;}ipcRenderer.send('ChangeTrayIcon', tayIcon);}}}
module.exports = WindowUtil;

转载于:https://www.cnblogs.com/sxz2008/p/6767746.html

electron 的窗口设置最大化 最小化相关推荐

  1. WinForm隐藏窗口控制最大化最小化按钮

    设置对窗口大小不能调整 找到[FormBorderStyle]选项,在选项列表中选择[FixedDialog],这样就可以固定窗口大小,禁止对窗口的自由调整了. 隐藏窗口的最大化和最小化按钮: 在选项 ...

  2. Qt 窗口操作函数(置顶、全屏,最大化最小化按钮设置等)

    一.窗口置顶 与 取消置顶 void MainWindow::on_windowTopButton_clicked() {if (m_flags == NULL){m_flags = windowFl ...

  3. [乱说]Electron 无边框窗口最大化最小化关闭功能

    title: '[乱说]Electron 无边框窗口最大化最小化关闭功能' date: 2017-11-21 21:43:40 tags: Electron 无边框窗口最大化最小化关闭功能 目的 实现 ...

  4. Qt 窗口的一些简单设置-标题、图标、最大化最小化按钮、任务栏图标

    一些很零散的窗体控制方法,在这总结一些. 1.更改窗体标题 this->setWindowTitle("窗体标题"); 窗体标题"就是更改的窗体标题 2.控制窗体大 ...

  5. Q窗口操作函数(窗口最大化,全屏,隐藏最大化最小化按钮)

    Qt窗口中的一些小技术总结 //Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv ...

  6. html最小化窗口,[转载]js实现窗口(支持拉伸,拖拽,最大化,最小化,滚动

    雨亭原创,转载注明 执行效果: 一窗体实现的功能: 1.鼠标拖动. 2.八个方向的拉伸. 3.可定制窗口标题,内容(文本或HTML),初始大小和位置,最小宽度,高度. 4.支持滚动条. 5.关闭窗体. ...

  7. mac如何使用快捷键,使得窗口最大化/最小化(完)

    问题: mac如何使用快捷键,使得窗口最大化/最小化 回答: 同时按下:command + control + F

  8. 第十四章:Electron-Vue 隐藏顶部菜单 隐藏关闭按钮、自定义关闭 最大化 最小化按钮

    electron-vue 中隐藏顶部菜单 //隐藏顶部菜单 mainWindow.setMenu(null); 隐藏关闭 最大化 最小化按钮 mainWindow = new BrowserWindo ...

  9. 解决Fedora没有最大化最小化按钮

    解决Fedora没有最大化最小化按钮   方法一:(Fedora16的时候用的是下面黑色字体的部分,当升级17后发现无法用黑色字体部分的方法,不知道其他人是否有同样的问题) 打开terminal,安装 ...

最新文章

  1. 2021年春季学期-信号与系统-第六次作业参考答案-第二小题
  2. sd卡测速工具_用4张卡聊一聊SD卡规范
  3. sort函数——利用函数实现快速排序c++
  4. linux拒绝sftp连接,linux服务器拒绝sftp
  5. 关于Jakarta EE软件包名称更改的思考
  6. springboot中日志配置
  7. java获取inputstream_Java:我怎样才能从inputStream获取编码?
  8. 动态生成节点与删除节点
  9. 隐藏与显现_惠州楼盘冷热不均价格涨跌互现 差异化调控作用显现
  10. Labview优化技巧
  11. 火车头采集html文档没内容,火车头采集器:编辑任务中常见问题
  12. A053_项目部署_Linux介绍_CentOS
  13. 浙江印发政府数字化转型工作方案,多处提及电子签名、签章、印章
  14. (ACWing yxc基础算法课笔记) 前缀和
  15. 用R语言绘制ROC曲线
  16. SSD ECC中的LDPC编解码原理
  17. 人工智能证书有什么作用?
  18. MGC TOKEN—必将超越PlusToken的搬砖套利项目!
  19. 采集网站服务器配置,搭建数据采集云服务器源码
  20. 做好项目信息管理,是优秀项目经理的必备技能

热门文章

  1. 最简单的基于FFmpeg的内存读写的例子:内存转码器
  2. dbf文件mysql,dbf文件怎么打开?dbf是什么文件?
  3. servletcheckbox选中和未选中判断_【微课堂】2020【1期】如何判断牛市启动,春季布局思路! 2020.1.4...
  4. 计算机信息学中比较大小的代码,信息学奥赛计算机基础知识.doc
  5. java pdf 转txt文件怎么打开_使用iText将TXT文件转换为PDF(保留格式)
  6. java迭代器不能修改集合值_关于使用迭代器对集合进行遍历时,不能对集合进行修改的论证...
  7. nodemcu引脚_一、ESP32开发板NodeMCU-32S简介
  8. 根据mysql生成数据库设计文档_通过navicat工具导出数据库的word格式的设计文档...
  9. Python入门--特殊方法__len__(),__add()__
  10. 保存最大的前20项暴力--Heritage of skywalkert