From 6fe479448c888bef5311a303c7c0509647309997 Mon Sep 17 00:00:00 2001 From: "LUOJIE\\coolp" Date: Fri, 18 Jul 2025 16:40:49 +0800 Subject: [PATCH] bak --- package.json | 2 +- src/main/index.js | 26 ++++++++++++-------------- src/main/tray.js | 11 +++++++++++ src/main/window.js | 25 +++++++++---------------- 4 files changed, 33 insertions(+), 31 deletions(-) diff --git a/package.json b/package.json index 97cae78..4fc27f1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "market-manager-gui", "version": "1.0.0", - "description": "苏小胭", + "description": "百千万AI智能体共创平台", "main": "./out/main/index.js", "author": "huashiai.com", "homepage": "https://huashiai.com", diff --git a/src/main/index.js b/src/main/index.js index be8ea68..5db5b5e 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -187,13 +187,13 @@ if (!isFirstInstance) { app.quit() // 退出当前实例 } else { logger.warn('未找到现有实例窗口,可能是锁未正确释放') - logger.info('尝试强制启动新实例...') - // 继续启动 + logger.info('强制退出当前实例,避免重复托盘') + app.quit() // 强制退出,避免创建重复托盘 } } catch (error) { logger.error('激活现有实例失败:', error) - logger.info('尝试强制启动新实例...') - // 继续启动 + logger.info('强制退出当前实例,避免重复托盘') + app.quit() // 强制退出,避免创建重复托盘 } } else { logger.info('这是第一个实例,继续启动') @@ -233,18 +233,13 @@ if (!isFirstInstance) { optimizer.watchWindowShortcuts(window) }) - - - // 根据存储的状态决定是否创建悬浮窗口 if (getStoreValue('showDrageWindow')) { createDrageWindow() } - createWindow() - createTray() setupIPC() @@ -267,8 +262,6 @@ if (!isFirstInstance) { logger.info(err) }); - - app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow() }) @@ -294,13 +287,14 @@ if (!isFirstInstance) { logger.error('窗口关闭时清理缓存失败:', error); } - // 清理完成后退出应用 + // 销毁托盘并退出应用 + destroyTray() app.quit(); } else { // 如果是主动退出,则销毁托盘并退出应用 destroyTray() - + app.quit() } } }) @@ -316,7 +310,8 @@ if (!isFirstInstance) { logger.error('应用退出时清理缓存失败:', error); } - // 清理完成后退出应用 + // 销毁托盘并退出应用 + destroyTray() app.quit(); }); @@ -333,6 +328,7 @@ if (!isFirstInstance) { } unregisterAllShortcuts() + destroyTray() // 清理完成后退出应用 app.quit(); @@ -348,6 +344,7 @@ if (!isFirstInstance) { } catch (error) { logger.error('SIGTERM 时清理缓存失败:', error); } + destroyTray() process.exit(0); }); @@ -358,6 +355,7 @@ if (!isFirstInstance) { } catch (error) { logger.error('SIGINT 时清理缓存失败:', error); } + destroyTray() process.exit(0); }); diff --git a/src/main/tray.js b/src/main/tray.js index e6cdee1..832d788 100644 --- a/src/main/tray.js +++ b/src/main/tray.js @@ -23,6 +23,13 @@ export async function clearBrowserCache() { } export function createTray() { + // 防止重复创建托盘 + if (tray) { + logger.info('托盘已存在,跳过创建') + return + } + + logger.info('开始创建托盘图标') // 创建托盘图标 tray = new Tray(icon) @@ -165,7 +172,11 @@ export function createTray() { export function destroyTray() { if (tray) { + logger.info('销毁托盘图标') tray.destroy() tray = null + logger.info('托盘图标已销毁') + } else { + logger.info('托盘图标不存在,无需销毁') } } diff --git a/src/main/window.js b/src/main/window.js index a54f0d3..02d6858 100644 --- a/src/main/window.js +++ b/src/main/window.js @@ -200,16 +200,16 @@ export async function createWindow() { function registerShortcuts(window=null) { // 先注销可能存在的F5快捷键 globalShortcut.unregister('F5') - + // 注册 F5 刷新快捷键 const success = globalShortcut.register('F5', () => { logger.info('F5 快捷键触发') - + try { // 获取当前焦点窗口 const focusedWindow = BrowserWindow.getFocusedWindow() logger.info('当前焦点窗口:', focusedWindow ? '存在' : '不存在') - + if (focusedWindow && !focusedWindow.isDestroyed()) { logger.info('刷新当前焦点窗口') focusedWindow.reload() @@ -226,7 +226,7 @@ function registerShortcuts(window=null) { logger.error('F5快捷键执行出错:', error) } }) - + logger.info(`F5快捷键注册${success ? '成功' : '失败'}`) const isRegistered_F12 = globalShortcut.isRegistered('F12'); @@ -622,13 +622,6 @@ export function createConfigWindow() { }) - const h5_client_url=getStoreValue("h5_client_url")+"/electron_h5/#/config" - - - logger.info("======================== configWindow 11111111111:") - logger.info(h5_client_url) - // configWindow.loadURL(h5_client_url) - if (is.dev && process.env['ELECTRON_RENDERER_URL']) { configWindow.loadURL(process.env['ELECTRON_RENDERER_URL'] + '/#/config') @@ -657,24 +650,24 @@ export function closeConfigWindow() { // 测试快捷键是否正常工作 export function testShortcuts() { logger.info('测试快捷键功能...') - + // 检查F5快捷键是否已注册 const isF5Registered = globalShortcut.isRegistered('F5') logger.info(`F5快捷键是否已注册: ${isF5Registered}`) - + // 获取所有已注册的快捷键 const allShortcuts = globalShortcut.isRegistered('F5') ? ['F5'] : [] logger.info(`已注册的快捷键: ${allShortcuts.join(', ')}`) - + // 获取当前焦点窗口 const focusedWindow = BrowserWindow.getFocusedWindow() logger.info(`当前焦点窗口: ${focusedWindow ? '存在' : '不存在'}`) - + if (focusedWindow) { logger.info(`焦点窗口标题: ${focusedWindow.getTitle()}`) logger.info(`焦点窗口是否销毁: ${focusedWindow.isDestroyed()}`) } - + return { f5Registered: isF5Registered, focusedWindow: focusedWindow ? 'exists' : 'none',