feat: 支持开机自启动

This commit is contained in:
digua
2026-04-24 20:50:44 +08:00
committed by digua
parent 2be18adf18
commit c3e165409a
8 changed files with 132 additions and 27 deletions
+17
View File
@@ -199,6 +199,23 @@ export function registerWindowHandlers(ctx: IpcContext): void {
}
})
// ==================== 开机自启动 ====================
ipcMain.handle('app:getOpenAtLogin', () => {
if (!app.isPackaged) return false
const { openAtLogin } = app.getLoginItemSettings()
return openAtLogin
})
ipcMain.handle('app:setOpenAtLogin', (_, enabled: boolean) => {
if (!app.isPackaged) return { success: false, error: 'Not available in dev mode' }
try {
app.setLoginItemSettings({ openAtLogin: enabled })
return { success: true }
} catch (error) {
return { success: false, error: String(error) }
}
})
// ==================== 更新检查 ====================
ipcMain.on('check-update', () => {
// 手动检查更新(即使是预发布版本也会提示)
+12
View File
@@ -102,5 +102,17 @@ export const extendedApi = {
relaunch: (): Promise<void> => {
return ipcRenderer.invoke('app:relaunch')
},
/**
* 获取开机自启动状态
*/
getOpenAtLogin: (): Promise<boolean> => {
return ipcRenderer.invoke('app:getOpenAtLogin')
},
/**
* 设置开机自启动
*/
setOpenAtLogin: (enabled: boolean): Promise<{ success: boolean; error?: string }> => {
return ipcRenderer.invoke('app:setOpenAtLogin', enabled)
},
},
}
+2
View File
@@ -213,6 +213,8 @@ interface Api {
getAnalyticsEnabled: () => Promise<boolean>
setAnalyticsEnabled: (enabled: boolean) => Promise<{ success: boolean }>
relaunch: () => Promise<void>
getOpenAtLogin: () => Promise<boolean>
setOpenAtLogin: (enabled: boolean) => Promise<{ success: boolean; error?: string }>
}
}