Skip to content
On this page

auto-launch

Electron 应用开机自启动功能实现方案

安装

bash
pnpm add electron-auto-launch

基础配置

javascript
const AutoLaunch = require('electron-auto-launch')

/**
 * 配置开机自启动
 * @param {Object} options - 配置选项
 * @param {string} options.name - 应用名称
 * @param {string} options.path - 应用可执行文件路径
 * @param {boolean} [options.isHidden=false] - 是否隐藏启动
 * @returns {Promise<boolean>} 是否配置成功
 */
const configureAutoLaunch = async ({ name, path, isHidden = false }) => {
  const autoLauncher = new AutoLaunch({
    name,
    path,
    isHidden,
  })

  return await autoLauncher.enable()
}

高级用法

javascript
/**
 * 高级配置选项
 * @typedef {Object} AdvancedOptions
 * @property {string} [mac.useLaunchAgent=false] - MacOS下使用LaunchAgent代替LoginItem
 * @property {boolean} [windows.enableTaskScheduler=true] - Windows下启用任务计划程序
 */

/**
 * 高级配置开机自启动
 * @param {Object} options - 配置选项
 * @param {string} options.name - 应用名称
 * @param {string} options.path - 应用可执行文件路径
 * @param {AdvancedOptions} [advancedOptions] - 高级配置选项
 * @returns {Promise<boolean>} 是否配置成功
 */
const configureAdvancedAutoLaunch = async ({ name, path }, advancedOptions) => {
  const autoLauncher = new AutoLaunch({
    name,
    path,
    ...advancedOptions,
  })

  return await autoLauncher.enable()
}

// 使用示例
const result = await configureAdvancedAutoLaunch(
  { name: 'MyApp', path: '/Applications/MyApp.app' },
  { mac: { useLaunchAgent: true }, windows: { enableTaskScheduler: false } },
)
console.log('配置结果:', result)

常见问题

1. 开机启动无效

  • 检查应用路径是否正确
  • 确保有管理员权限(Windows)
  • 检查 MacOS 的登录项设置

2. 重复启动问题

javascript
// 检查是否已启用
const isEnabled = await autoLauncher.isEnabled()
if (!isEnabled) {
  await autoLauncher.enable()
}

3. 禁用自启动

javascript
// 禁用自启动
await autoLauncher.disable()

要保持清醒 永远不抱有意外的幻想 凭空的期待最要命