LaiTool_PRO/src/main/index.ts

62 lines
1.8 KiB
TypeScript
Raw Normal View History

2025-08-19 14:33:59 +08:00
import { app, BrowserWindow } from 'electron'
import { electronApp, optimizer } from '@electron-toolkit/utils'
import { CreatWindow } from '../define/window/windowManager'
import { Logger } from '../define/Tools/logger'
import { successMessage } from '@/public/generalTools'
// import { machineId } from 'node-machine-id'
// 在文件顶部添加这段代码
process.on('unhandledRejection', (reason, promise) => {
console.error('未处理的Promise拒绝:', promise, '原因:', reason)
// 可以选择记录到日志文件或者向用户显示错误
})
// 在应用启动前,设置正确的编码
process.env.LANG = 'zh_CN.UTF-8'
async function createWindow() {
try {
// 创建主窗口
global.wm = new CreatWindow()
let win = global.wm.createWin('main', { openDevTools: false, minWidth: 1000, minHeight: 750 })
global.wins = [win]
global.wm.ipcMainListen()
// 先初始化日志
global.logger = new Logger()
// 再初始化文件夹和配置
await global.wm.initConfigFolderOrFile()
await global.wm.InitConfig()
successMessage(
null,
'软件初始化成功,创建窗体成功,初始化配置,初始化日志成功',
'SoftWare.Init'
)
} catch (error: any) {
console.error('应用初始化失败:', error)
// 移除throw error改为返回一个自定义错误消息
throw error
}
}
app.whenReady().then(async () => {
electronApp.setAppUserModelId('com.electron')
app.on('browser-window-created', (_, window) => {
optimizer.watchWindowShortcuts(window)
})
await createWindow()
app.on('activate', async function () {
if (BrowserWindow.getAllWindows().length === 0) await createWindow()
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})