苏南大叔在以前的文章中,案例过一款第三方代码node-auto-launch,功用就是控制electron或者nwjs加入开启启动项,相关链接见文末。

在本文中,苏南大叔将要介绍的功能是针对electron的。electron程序,如何设置加入开机启动项呢? electron官方提供的相关代码功能,并不需要安装第三方代码库。这个就有些厉害了不是?毕竟很多人都有这个electron加入开机启动项的需求。

苏南大叔:electron程序,如何设置加入开机启动项? - electron-auto-launch
electron程序,如何设置加入开机启动项?(图3-1)

本文测试环境:macwin10electron@5.0.7。需要特殊说明的是,在苏南大叔的测试中,在win10下面,是可以比较完美实现这个功能的。而对于mac系统,对于开发非打包状态下的electron程序,开启呈现的并不是大家想要的。这一点是和伪协议唤起electron时的问题,是同出一辙的。

核心代码

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

app.setLoginItemSettings(); 

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

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

settings是个Object类型,其key有:

  • openAtLogin Boolean (可选) - true在登录时启动应用,false 移除应用作为登录启动项 。默认为 false.
  • openAsHidden Boolean (可选) macOS - true 表示以隐藏的方式启动应用。 默认为false。 用户可以从系统首选项中编辑此设置, 以便在打开应用程序时检查 app.getLoginItemSettings().wasOpenedAsHidden 以了解当前值。 该配置在 MAS 构建 时不可用。
  • path String (可选) Windows - 在登录时启动的可执行文件。默认为 process.execPath.
  • args String Windows - 要传递给可执行文件的命令行参数。默认为空数组。注意用引号将路径换行。

扩展代码

结合在伪协议调用时的相关经验,苏南大叔自己完善了一下相关代码,根据app.isPackaged对代码进行了区分。可以解决window下,electron程序的开发调试时,开机启动功能调试的问题。仅供参考,如果大家有更好的解决方案,请留言给苏南大叔。谢谢。

newsn.net:这里是【评论】可见内容

苏南大叔:electron程序,如何设置加入开机启动项? - setloginitemsettings-code
electron程序,如何设置加入开机启动项?(图3-2)

相关效果

win10下面测试的时候,可以看到,相关的代码会写入注册表。当然,第二次执行相关代码的时候,并不会触发数字公司的产品拦截。而在mac下面测试的时候,没有任何的权限提示,直接加入开机启动项成功。

苏南大叔:electron程序,如何设置加入开机启动项? - electron-auto-launch-360safe
electron程序,如何设置加入开机启动项?(图3-3)

相关链接

设置开机启动:

查询开机启动状态:

auto-launch如何使用:

总结

对于electron开发人员来说,这个setLoginItemSettings无疑是非常好的选择。马上试试吧。更多苏南大叔的electron相关博客文章,请点击:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章: