electron 的窗口设置最大化 最小化

/**
 * 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;
时间: 2024-10-08 07:07:48

electron 的窗口设置最大化 最小化的相关文章

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

//Qt主窗口没有最小化,最大化按钮且最大化显示  int main(int argc, char *argv[]) { QApplication a(argc, argv); TestQtForWinCE w; w.setWindowFlags(w.windowFlags()& ~Qt::WindowMaximizeButtonHint& ~Qt::WindowMinimizeButtonHint); w.showMaximized(); return a.exec(); } 这里的&q

【转】ubuntu 12.04 LTS将关闭最大化最小化移动到右上角

原文网址:http://www.4byte.cn/learning/114801.html ubuntu 12.04 LTS将关闭最大化最小化移动到右上角 还是按下“ALT +F2”组合键,输入gconf-editor并回车运行. www.4byte.cn (如果此时没有运行,则说明你需要安装gconf-editor,打开终端输入sudo apt-get install gconf-editor回车运行,等待安装完毕就行了.) 这时会打开一个配置编辑器,在左侧一次展开“apps/metacity

WPF 最大化最小化窗口

public static void FullOrMin(this Window window)        {            //如果是全屏,则最小化            if (window.WindowState == WindowState.Maximized)            {                window.Topmost = false;                window.WindowState = WindowState.Normal; 

Qt 程序窗口最大、最小化相关的设置方法

Qt 生成基于对话框的程序时,程序的右上角是没有最大化.和最小化按钮的.这时可以用下面的代码: setWindowFlags(windowFlags() | Qt::WindowMaximizeButtonHint); setWindowFlags(windowFlags() | Qt::WindowMinimizeButtonHint); 如果需要程序一运行就最大化,可以加入下面的代码: setWindowState(Qt::WindowMaximized); 如果不希望窗口大小发生变化,可以

Unity中的多屏以及最大化最小化

一 多屏 首先是多屏,我的需求是只显示在第二块屏幕上,而且第一块屏幕上的操作不能影响到第二块屏幕. 如果连了另一块屏幕,在打开exe的时候的配置框可以选择显示在哪块屏幕上 如果选择了第二块,不删除Data文件夹,回到Unity取消勾选Display Resolution Diag,下次打开直接跳到第二快屏幕上. 二 解决第二块屏幕的后台 但是如果仅仅这样,会遇到一个不大大小的问题-在主屏幕点击一下,第二块屏幕的显示就跑到后台去了. 我是想让第二块屏幕,不受第一块屏幕的影响而跑到后台. 经过尝试,

MFC修改初始窗口大小和窗口名字禁止窗口最大,最小化

2,在里面就可以修改初始窗口大小和窗口名字 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs){if( !CFrameWnd::PreCreateWindow(cs) )   return FALSE;// TODO: Modify the Window class or styles here by modifying// the CREATESTRUCT cs cs.cx=500;cs.cy=500; cs.style &=~FWS_A

4.7版本的qt中qml的背景透明设置和最小化

qml中的背景透明设置: view.setStyleSheet("background:transparent;"); view.setAttribute(Qt::WA_TranslucentBackground); qml中设置背景透明后showMinimized()(最小化)不好用解决方案是: 对qml的焦点事件重载 头文件: #ifndef QML_WIDGET_SET_H #define QML_WIDGET_SET_H #include <QDeclarativeVie

delphi 窗体最大化 最小化

procedure TForm1.SpeedButton2Click(Sender: TObject); begin sendmessage(form1.WindowHandle,WM_SYSCOMMAND,SC_ICON,0);//窗体最小化  任务栏中 end;   procedure TForm1.SpeedButton2Click(Sender: TObject); begin form1.WindowState :=  wsMaximized;//窗体最大化 end;   proced

自定义最大化 最小化 关闭按钮

实现效果:  知识运用: 资源文件 将图片存入资源文件 资源管理器-Properties-Resources.resx文件 读取资源文件中的图片 Properties命名空间下的Resoources资源类 pictureBox.Image=Properties.Resources.max; WindowState属性 用于获取或设置窗体的状体 public FormWindowstate WindowsState{ get;set; } 参数为FormWindowState枚举值之一 Maxim