import { app } from 'electron'; import log from 'electron-log/main'; /** * 开机自启:基于系统登录项实现(Windows 写 HKCU\...\Run 注册表、mac 写「系统设置 → 登录项」), * 无需管理员权限;系统登录项本身就是持久化存储,无需额外落盘记录状态。 */ /** 读取当前开机自启状态(直接以系统登录项为准,避免自维护状态与系统不同步) */ export function getAutoLaunchEnabled(): boolean { // 开发模式下登录项指向 electron 开发二进制,无意义,统一视为关闭 if (!app.isPackaged) return false; return app.getLoginItemSettings().openAtLogin; } /** * 设置开机自启 * --hidden 参数让开机自启时静默进托盘(主进程入口据此不弹主窗口),避免开机打扰 */ export function setAutoLaunchEnabled(enable: boolean): boolean { if (!app.isPackaged) { log.warn('开发模式不支持设置开机自启(登录项会错误指向开发二进制)'); return false; } app.setLoginItemSettings({ openAtLogin: enable, args: enable ? ['--hidden'] : [], }); return getAutoLaunchEnabled(); }