diff --git a/src/main/index.ts b/src/main/index.ts index 9ef9c61..ca5b686 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -47,44 +47,62 @@ function initialize() { initializeShortcuts(mainWindow); } -// 应用程序准备就绪时的处理 -app.whenReady().then(() => { - // 设置应用ID - electronApp.setAppUserModelId('com.alger.music'); +// 检查是否为第一个实例 +const isSingleInstance = app.requestSingleInstanceLock(); - // 监听窗口创建事件 - app.on('browser-window-created', (_, window) => { - optimizer.watchWindowShortcuts(window); +if (!isSingleInstance) { + app.quit(); +} else { + // 当第二个实例启动时,将焦点转移到第一个实例的窗口 + app.on('second-instance', () => { + if (mainWindow) { + if (mainWindow.isMinimized()) { + mainWindow.restore(); + } + mainWindow.show(); + mainWindow.focus(); + } }); - // 初始化应用 - initialize(); + // 应用程序准备就绪时的处理 + app.whenReady().then(() => { + // 设置应用ID + electronApp.setAppUserModelId('com.alger.music'); - // macOS 激活应用时的处理 - app.on('activate', () => { - if (mainWindow === null) initialize(); + // 监听窗口创建事件 + app.on('browser-window-created', (_, window) => { + optimizer.watchWindowShortcuts(window); + }); + + // 初始化应用 + initialize(); + + // macOS 激活应用时的处理 + app.on('activate', () => { + if (mainWindow === null) initialize(); + }); }); -}); -// 监听快捷键更新 -ipcMain.on('update-shortcuts', () => { - registerShortcuts(mainWindow); -}); + // 监听快捷键更新 + ipcMain.on('update-shortcuts', () => { + registerShortcuts(mainWindow); + }); -// 所有窗口关闭时的处理 -app.on('window-all-closed', () => { - if (process.platform !== 'darwin') { - app.quit(); - } -}); + // 所有窗口关闭时的处理 + app.on('window-all-closed', () => { + if (process.platform !== 'darwin') { + app.quit(); + } + }); -// 重启应用 -ipcMain.on('restart', () => { - app.relaunch(); - app.exit(0); -}); + // 重启应用 + ipcMain.on('restart', () => { + app.relaunch(); + app.exit(0); + }); -// 获取系统架构信息 -ipcMain.on('get-arch', (event) => { - event.returnValue = process.arch; -}); + // 获取系统架构信息 + ipcMain.on('get-arch', (event) => { + event.returnValue = process.arch; + }); +}