123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- const { app, BrowserWindow } = require('electron');
- const serverManager = require('./serverManager');
- const menuManager = require('./menuManager');
- const constants = require('./constants');
- let win = null;
- // 创建 Electron 窗口的函数
- const createWindow = async () => {
- try {
- const isServerRunning = await serverManager.checkServerHealth();
- if (!isServerRunning) {
- await serverManager.startServer(); // 启动 Web API
- }
- win = new BrowserWindow({
- width: 800,
- height: 600,
- webPreferences: {
- nodeIntegration: true,
- contextIsolation: false,
- },
- });
- win.maximize();
- win.loadURL(constants.baseUrl, {
- agent: constants.agent
- });
- } catch (error) {
- console.error('Error starting server or loading window:', error);
- }
- };
- // 当 Electron 应用准备好时创建窗口
- app.whenReady().then(() => {
- createWindow();
- menuManager.createMenu();
- app.on('activate', () => {
- if (BrowserWindow.getAllWindows().length === 0) {
- createWindow();
- }
- });
- // 监听 before-quit 事件,关闭 IES.ExamServer.exe 进程
- app.on('before-quit', async (event) => {
- event.preventDefault(); // 阻止默认的退出行为
- await serverManager.shutdownServer();
- //app.quit(); // 关闭 Electron 应用程序
- });
- });
- // 当所有窗口关闭时退出应用(macOS 除外)
- app.on('window-all-closed', function () {
- app.quit();
- });
|