12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- 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();
|