electron程序,如何设置加入开机启动项?

2,335 阅读2分钟

electron程序,如何设置加入开机启动项呢?  electron官方提供的相关代码功能,并不需要安装第三方代码库。相信很多人在开发electron应用程序的时候都会有这个需求

本文测试环境 macwin10electron@28.0.0,并在软件打包后支持软件自启动。

核心代码

electron加入开机启动项的核心最简化代码是:

app.setLoginItemSettings(); 

这个代码仅仅支持macoswindows,其官方描述是:

其函数原型为:app.setLoginItemSettings(settings)

settings是个Object类型,其key有:

  • openAtLogin boolean (可选) - true 登录时打开应用程序, false 将应用从登录启动项中删除。 默认值为 false.
  • openAsHidden boolean (可选) macOS - true 以隐藏方式打开应用程序。 默认为false。 用户可以从系统首选项中编辑此设置, 以便在打开应用程序时检查 app.getLoginItemSettings().wasOpenedAsHidden 以了解当前值。 此设置在 MAS builds 上不可用
  • path string (可选) Windows - 登录时运行的可执行文件。 默认为 process.execPath
  • args string[] (可选) Windows - 传递给可执行文件的控制台参数。 默认为空数组。 注意用引号包裹路径。
  • enabled boolean (可选) Windows - true 将更改已启用的启动注册表项,并在任务管理器和 Windows 设置中 启用 / 禁用 应用程序。 默认值为 true
  • name string (可选) Windows - 要写入注册表的值名称。 默认为应用的 AppUserModelId()。 设置应用程序的登录项设置。

线上使用

if (app.isPackaged) {
  const ex = process.execPath;
  app.setLoginItemSettings({
    openAtLogin: true,
    path: ex,
    args: [],
  });
}

mac在打包后运行会提示添加到启动项,windows默认没有感知,可以在任务管理中查看启动项

最后

如果想要扩展到 linux 平台,或者出现设备不兼容的情况,可以尝试使用 node-auto-launch