import { app, BrowserWindow } from "electron"; import { createWindow, mainWindow } from "../win/mainWin"; import { initIpcMain } from "./ipcMain"; import { initTray } from "./tray"; import { initExpress } from "./express"; //平台 // const isMac = process.platform === "darwin"; //跨域警告关闭 (process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] as unknown) = true; //环境 // const isDev = process.env.IS_DEV == "true" ? true : false; if (!app.requestSingleInstanceLock()) { app.quit(); process.exit(0); } else { app.on("second-instance", (event, commandLine, workingDirectory) => { if (mainWindow) { if (mainWindow.isMinimized()) mainWindow.restore(); mainWindow.show(); mainWindow.focus(); } }); } // 这段程序将会在 Electron 结束初始化 // 和创建浏览器窗口的时候调用 // 部分 API 在 ready 事件触发后才能使用。 app.whenReady().then(() => { AtLogin(); createWindow(); initTray(); initExpress(); }); // 开机自启动 const AtLogin = async () => { if (app.isPackaged) { // 设置应用开机启动 app.setLoginItemSettings({ openAtLogin: true, // 设置为 true 可以隐藏启动时的窗口 path: app.getPath("exe"), // 可选,指定要启动的应用路径 args: ["--openAsHidden"], }); } }; // SqliteData.getInstance(); app.on("activate", function () { // 通常在 macOS 上,当点击 dock 中的应用程序图标时,如果没有其他 // 打开的窗口,那么程序会重新创建一个窗口。 // if (BrowserWindow.getAllWindows().length === 0) createWindow(); console.log("activate=====>"); const allWindows = BrowserWindow.getAllWindows(); if (!allWindows.length) { createWindow(); } }); // 除了 macOS 外,当所有窗口都被关闭的时候退出程序。 因此,通常对程序和它们在 // 任务栏上的图标来说,应当保持活跃状态,直到用户使用 Cmd + Q 退出。 app.on("window-all-closed", function () { // SqliteData.getInstance().close(); if (process.platform !== "darwin") app.quit(); }); // 在这个文件中,你可以包含应用程序剩余的所有部分的代码, // 也可以拆分成几个文件,然后用 require 导入。 initIpcMain();