Appearance
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()